我已通过 -
将值传递到搜索页面<%= link_to 'add', users_path(bookto: @book.id) %>
在视图和
中@book = Book.find_by_id(params[:bookto])
在接收控制器动作中。
我的接收(索引)视图中有一个搜索表单
<%= form_tag users_path(params[bookto: @book.id]), method: 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
<%= "#{@book.id}, #{@book.title}" %>
<% if @users %>
<%= render partial: 'layouts/showusers', locals: {users: @users} %>
<% end %>
当我浏览页面时
http://localhost:3000/users?bookto=1
@book的值正确传递。但是,当我执行搜索时,参数不会传递给
http://localhost:3000/users?utf8=✓&search=mysearch
我没有传递参数。我不想在搜索中使用这个任意参数,我只是希望在搜索完成后我可以使用它。我该如何实现这一目标?我是否需要向我的控制器添加搜索操作?
答案 0 :(得分:1)
为什么不在搜索表单中添加隐藏字段,如下所示
<%= form_tag users_path, method: 'get' do %>
<p>
<%= hidden_field_tag :bookto, @book.id %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
因为你想要在你的URL中看到bookid,所以这种方法在你的情况下是可以的。