【发布时间】:2015-07-06 22:27:42
【问题描述】:
目前,我正在尝试在项目中创建搜索,以根据用户所在的地区来显示用户。据我了解,我基本上需要将搜索参数放在控制器中,将self.search方法放在模型中,然后将表单放在视图中。
在另一个项目中,我进行了搜索,但它显示了上面的所有选项,并使用搜索过滤掉那些不匹配的选项。对于这种情况,我不想在一开始就列出任何用户。我想使用搜索栏并在该视图页面中显示任何匹配的用户。此外,如果确实有所作为,我会为用户使用 Devise。这是我的三个代码区域:
模型(user.rb):
def self.search(search)
where("state ILIKE ?", "%#{search}%")
end
控制器(welcome_controller.rb):
def index
@users = User.all.order("created_at DESC")
@newusers = User.all.order("created_at DESC").limit(5)
@differentlocations = User.all.group_by(&:state).count
render :layout => 'with_newest_members'
if params[:search]
@users = User.search(params[:search]).order("created_at DESC")
else
@users = User.all.order('created_at DESC')
end
end
查看(find.html.erb):
<%= form_tag(find_path, :method => "get") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search Posts" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
如果您有任何知识可以帮助我,请告诉我 =) 任何额外的解释将不胜感激,以帮助我理解,谢谢!
编辑:我知道我需要输入结果部分,但我对如何/在哪里放置它感到困惑。
乔
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 search devise