我是Ruby on Rails的新手,实际上,我正试图在我的Ruby on Rails页面中实现搜索功能。它是一个可以将用户添加到数据库的页面,您也可以编辑或删除它们。我的索引页面中列出了所有这些用户,并且在此表格上方有一个搜索功能(嗯,它只是一个文本字段和一个按钮)。
我现在要做的是:我想实现搜索姓氏,房间,密钥,经理等搜索功能。我已经尝试了一些东西,但我终于不知道如何实现搜索功能(我应该写什么,我应该在哪里写呢?我从模型和控制器中听到,但无论如何我不是100 %sure)。如果你能帮我解决这个问题我真的很高兴!
干杯, absolado
答案 0 :(得分:1)
以下是简单搜索的示例代码。
index.html.erb
<% form_tag projects_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
这里是your_model.rb
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
end
这里是your_controller.rb
def index
@projects = Project.search(params[:search])
end
答案 1 :(得分:1)
如果您不想自己实现宝石,可以使用宝石。 Ransack是一个非常受欢迎的宝石,它可以支持所有这些功能以及您的视图帮助程序,高级搜索匹配器等等。我建议您在继续执行自己的实现之前先看一下。
答案 2 :(得分:0)
这看起来像是Datatables的工作。我在我的应用程序中使用了很多次。除了在记录中搜索属性外,它还具有可排序的列功能。
答案 3 :(得分:0)
很重要的一点是,Datatable是一个javascript程序包,它使用过滤器,顺序,分页功能构建了一个健壮的表,但是默认情况下它不是在服务器端完成的。
这意味着,如果您有一个大数据集,则可能会遇到麻烦,因为所有记录都将作为一个巨大的json被泵送到客户端的浏览器,而Datatable将为您解析并填写表。
Datatable为服务器端分页,过滤器等提供支持,但随后您必须在后端中实现这些功能。