Ruby on rails Rails保存表单数据以供查询

Ruby on rails Rails保存表单数据以供查询,ruby-on-rails,ruby,Ruby On Rails,Ruby,感谢前两条评论的帮助。以下是搜索栏的固定代码: class TextbooksController < ApplicationController . . . def index @textbooks = Textbook.search(params[:search]).paginate(page: params[:page]) end end 我希望用户从主页进行搜索,因此我在视图中有一个简单的文本字段和提交按钮: <%= form_tag tex

感谢前两条评论的帮助。以下是搜索栏的固定代码:

class TextbooksController < ApplicationController
.
.
.
    def index
        @textbooks = Textbook.search(params[:search]).paginate(page: params[:page])
    end
end
我希望用户从主页进行搜索,因此我在视图中有一个简单的文本字段和提交按钮:

<%= form_tag textbooks_path, method: "get" do %>
        <p>
            <%= submit_tag "Search", name: nil, id: "search_btn_home" %>
            <%= text_field_tag :search, params[:search], id: "search_bar_home", class: "form-control" %>
        </p>
<% end %>
教科书索引页面如下所示

<% provide(:title, 'Search results') %>
<h1>Search results</h1>

<%= will_paginate %>

<ul class="textbooks">
    <%= render @textbooks %>
</ul>

<%= will_paginate %>

你只是链接到你的路径,所以你不会从你的搜索栏中得到任何东西。您必须将text_field_标记放在表单中,然后将表单提交到路径。只有这样,您才能使用params[:search]。感谢您的回复。我用我认为正确的代码进行了编辑,但是现在根本没有呈现表单。不过,在我看来,它在语法上并没有错:/谢谢胡安尼托法塔斯,它是那样的=。你能解释一下为什么这样做吗?可能在旧版本的Rails中,它使用rhtml,rhtml就是这样工作的。但现在雇员再培训局不再这样做了。