rails 来自搜索页的结果页值

rails results page value from search page

我有一个使用 :method => 'get' 的搜索表单,它与我的 index.html.erb 文件非常相似。我已经设置了到结果页面的路由,但是在操作结果下的控制器中定义的 @user 在结果页面中与包含所有内容的索引中的原始 @user 相同。我想知道如何从我的搜索表单中获取值?

如果有人能指出我的方向,我将不胜感激。

首先,您需要为搜索定义一条路线,但正如您已经完成的那样。下一步是在您想要的视图中编写搜索表单:

<%= form_tag(custom_search_path, :method => "get") do %>
  <%= text_field_tag :search, params[:search], placeholder: "Search" %>
  <%= submit_tag "Search" %>
<% end %>

这将获取搜索文本,并在 params[:search] 变量中发送给您,您可以在控制器中使用放置在路由中的方法访问该变量。接下来你需要在你的模型上定义一个class级的搜索方法:

class YourModel < ActiveRecord::Base
  def self.search(text)
    where("column LIKE ?", "%#{text}%")
  end
end

然后,在您的控制器中,您可以执行以下操作:

def index
  if params[:search]
    @result = Model.search(params[:search]).order("created_at DESC")
  end
end