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
我有一个使用 :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