link_toメソッドでクエリパラメータを付与する
最初はbookmarks#createアクションの中に、params[:board_id]という書き方に疑問を感じた。 なんでparamsにboard_idが入ったのか?
1
2
def create
board = Board.find(params[:board_id])
boards/_bookmark.html.erbの中で、 link_to bookmarks_path(board_id: board.id)があった。
ブックマークをクリックした瞬間、(board_id: board.id)のクエリパラメータがurlに入ってきた。 だからアクセスするURLはbookmarks/?board_id=xxになる
それで、createアクションでparams[:board_id]でboard_id取得して、ブックマーク対象の投稿を取得する
他のクエリパラメータの付与方法
1
2
3
4
5
6
7
8
link_to "Comment wall", profile_path(@profile, anchor: "wall")
=> <a href="/profiles/1#wall">Comment wall</a>
link_to "Ruby on Rails search", controller: "searches", query: "ruby on rails"
=> <a href="/searches?query=ruby+on+rails">Ruby on Rails search</a>
link_to "Nonsense search", searches_path(foo: "bar", baz: "quux")
=> <a href="/searches?foo=bar&baz=quux">Nonsense search</a>
他参照
This post is licensed under CC BY 4.0 by the author.