Post

link_toメソッドでクエリパラメータを付与する

最初はbookmarks#createアクションの中に、params[:board_id]という書き方に疑問を感じた。 なんでparamsboard_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>

Rails APIより


他参照

【Rails】link_toに任意のパラメータを付与する方法

This post is licensed under CC BY 4.0 by the author.