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.