ボードの実装に取り組んでいます。
これで、BoardsControllerとPostsControllerができました。
デフォルトでは、投稿はボードによってネストされます。
すべてのボードの投稿リストに、同じPostsControllerを使用した特別なルートを設定したい
だから私はroute.rbでこれをしました
resources :notice, :controller => "posts", :board_id => 1
resources :faq, :controller => "posts", :board_id => 2
resources :qna, :controller => "posts", :board_id => 3
最初は、うまくいくようです。しかし、私は問題に気づきました。これらのリソースで同じ「PostsController」を使用したためです。
コントローラーのアクションを実行する場合、パスに関連するコードは同じです
お気に入り、
post_controller
def create
@post = Board.find(params[:board_id]).posts.build(params[:post])
if @post.save
redirect_to board_posts_path(@post.board_id)
else
render 'new'
end
end
localhost:3000 / Notice / newに移動すると、正常に動作します
しかし、新しい投稿を送信すると、コントローラーはlocalhost:3000 / boards / 1 /posts/にリダイレクトされます
のため redirect_to board_posts_path(@post.board_id)
それは私が望んでいることではありません。
ifステートメントを使用してこれを処理できますが、面倒なようです。
これに対する適切な解決策はありますか?