:id
サイトにアクセスすると、ナメクジの前に表示されるようにルートを調整しています。
match "/causes/:id/:slug" => "causes#show", :as => :cause, :via => 'get'
しかし、私はそのような原因に属する「post」と呼ばれるネストされた属性も持っています
match "/causes/:id/:slug/posts" => "causes#posts", :via => 'get', :as => :posts
私がこれを使用すると、すべてが原因に対してはうまく機能しますが、投稿に対しては機能しません。
使用する場合
@post = Post.find(params[:id])
原因または投稿コントローラーでは、投稿の:idではなく、常に原因のIDを検索します。したがって、投稿:id
が9で、原因:id
が1の場合、私は
@post = Post.find(params[:id])
post[1]
9や、投稿IDが実際に何であれ、常に検索されます。
私は何が間違っているのですか?ルートでこれを機能させる方法はありますか、それともコントローラーでネストされたオブジェクトのIDを見つける別の方法がありますか?
ルートを設定した方法にする必要があります。:id/:slug...
レーキルート情報:
cause GET /causes/:id/:slug(.:format) causes#show
edit_cause GET /causes/:id/:slug/edit(.:format) causes#edit
PUT /causes/:id/:slug(.:format) causes#update
posts GET /causes/:id/:slug/posts(.:format) causes#posts
POST /causes/:id/:slug/posts(.:format)
PUT /causes/:id/:slug/posts(.:format) causes#update_post
DELETE /causes/:id/:slug/posts(.:format) causes#destroy_post
causes GET /causes(.:format) causes#index
POST /causes(.:format) causes#create
どんな助けでも素晴らしいでしょう。