申し訳ありませんが、私の英語は悪いです。質問:列タイトル、説明などを含むモデルページがあります。これらのページを作成、変更、破棄できます。私はリンクmydomain/pages/1
の内容を見ることができます。私は各ページがテンプレートとルートになっている必要があるので、リンク上のコンテンツを見ることができます(例:maydomain/contacts
)。どうやってするの?お願い助けて。独自のソリューションを実装するRuby on Railsページコントロール
0
A
答えて
0
一つの方法は、あなたのルートファイルにこれを追加することです:
get '/mydomain/:slug, to: 'pages#show'
これはかなり一般的マッチャーですので、それがないように、あなたのルートの下にそれを追加他のものを無効にする。
その後、あなたのコントローラーのshowアクションは、以下のようになります。もちろん
def show
@page = Page.find_by_slug(params[:slug])
end
これは、あなたのページのテーブルの上にslugカラムを前提としています。
0
私は、私はあなたが二つの部分に問題を分離することをお勧めしたい(例えばmyapp.example.com)あなたのサイトのルートURLを意味する「MYDOMAIN」で
を想定しています:
- URL内の項目を識別するためにid以外の属性を使用する
- コントローラを指定する必要がないようにルートを縮小します。
については、Rails routes with :name instead of :id url parametersを参照してください。@spickermannが示しているように、friendly_idは良い解決策である可能性があります。
2の場合は、コントローラ名なしでルートを作成してから、ルート定義にコントローラを指定する必要があります。 (Rails Routing Guide参照):そのために
get ':param', to: :show, controller: 'pages'
が動作するように、それは他のルートとinteferないように、あなたは(routes.rbを、下部)の後に、それを配置する必要があります。私はまた、
adding a constraint to the routeをお勧めしたいと思う - 間違ったURLをその経路にルーティングすることができます。
関連する問題
- 1. RubyとRuby on Rails
- 2. Ruby on Rails - show on new on
- 3. Ruby on Railsグラフ
- 4. Ruby on railsデータベーススキーマヘルプ
- 5. Ruby on Railsルーティング
- 6. Ruby on Railsルーティングエラー
- 7. Ruby On Railsファイルセレクタ
- 8. ruby on rails 4
- 9. ruby on rails - 'id' =
- 10. Ruby on Railsルートエラー?
- 11. Ruby on Railsディレクトリパス
- 12. テストメーラー(Ruby on Rails)
- 13. ダイナミックルートRuby on Rails
- 14. ruby on railsグローバルメソッド
- 15. Ruby on Railsスクリプトコンソール
- 16. クエリ - Ruby on Rails
- 17. Ruby on rails beginner
- 18. Ruby on rails redirect_to
- 19. Docsplit Ruby on Rails
- 20. Ruby on Railsエラー
- 21. Ruby on Railsカタログビュー
- 22. Ruby on Railsカスタムハッシュルート
- 23. Ruby on Railsアプリケーション
- 24. Ruby on Railsサンプルプロジェクト
- 25. Ruby on Rails - フォーラムモデレーター
- 26. Ruby on Railsインデックスルーティング
- 27. (ruby on rails)lib/
- 28. Ruby on Rails Listener
- 29. ruby on railsモデル
- 30. Ruby on Railsスイッチ
あなたは[friendly_id](https://github.com/norman/friendly_id)の宝石を見たいかもしれません。 – spickermann