这个问题的帖子很少,但没有一个能解决我的问题。今天的大多数教程似乎都使用旧的方式(Rails< 3)。我在Rails 4上。
在我的根目录中,我有:
<%= form_tag search_supports_path, :method => 'get' do %>
<p>
<%= text_field_tag :search %>
<%= submit_tag "Search" %>
</p>
<% end %>
在控制器中:
#search_supports#index
if params[:search]
@supports = Support.find(:all, :conditions => ['name LIKE ?', "%#{params[:search]}%"])
else
@supports = Support.find(:all)
end
如果我在控制器中@supports = Support.all
进行测试,我会使用@supports.each
阻止我的视图中的所有支持。
我得到的确切错误是:
Couldn't find all Supports with 'id': (all, {:conditions=>["name LIKE ?", "%[:search]%"]}) (found 0 results, but was looking for 2)
是否有Rails 4进行此搜索?如果是的话,我可以找到您的答案的链接以便阅读吗? PS:我还在学习Rails。
答案 0 :(得分:0)
这看起来很像Rails 2代码。
Support.find(:all, :conditions => ['name LIKE ?', "%#{params[:search]}%"])
在Rails 4语法中,它应该如下所示:
Support.where('name LIKE ?', "%#{params[:search]}%")
我建议使用Rails指南进一步阅读ActiveRecord Query Interface。