##link_to
例えばlink_toで
book/1
というルーティングに画面遷移したい場合
book = Book.find(1)して
link_to @book.name, book_path(book.id)とか
link_to @book.name, book_path(params[:id])とか
すると思う。多分ね。
ransackの場合
link_to @book.name, book_path(@q, :'q[book_id_eq' => "#{@book.id}")
という風にするとransackのquery parameterを与えることができる。
##indexページでransackで@booksという一覧を表示している場合
ransackで検索するには
[eq, start, cont]とかをうまく使う
今回もBookオブジェクトがあると仮定
def index
#検索オブジェクト
@search = Book.ransack(params[:q])
#検索結果
@books = @search.result
end
<%= search_form_for @search do |f| %>
<%= f.label :name, "名前" %>
<%= f.search_field :name_start %>
<%= f.label :price_gtep, "価格" %>
<%= f.search_field :price_gteq %>
<div class="actions">
<%= f.submit "検索" %>
</div>
<% end %>
link_to "一覧に戻る", books_path(@q, :'q[book_name_start' => "#{@book.name}")
これで一覧に戻ったときに検索した状態で@book.nameを検索した状態で一覧表示されます。
urlをみるとbooks/%DAsvijkrgsdみたいなransackの検索パラメータが埋め込まれているはず。
pageも引数として受け渡せるかは謎。試してみる。