【发布时间】:2010-09-13 16:13:09
【问题描述】:
这是我尝试改进的“简单搜索表单”的代码(感谢 jordinl)。如果没有找到匹配项,我想添加案例。
所以,有视图(views/users/index.html.erb)
<% form_tag users_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
<% @users.each do |user| %>
<p><%= link_to "#{user.name}", user %></p>
.
.
.
<% end %>
控制器(users_controller.rb)
def index
@users = User.search(params[:search])
end
以及用户模型中的方法:
def self.search(search)
search.blank? ? [] : all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
end
我尝试了以下方法:
def self.search(search)
if search.to_s.size < 1
[]
else
if @users.size > 0
all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
else
render :text => "No result found"
end
end
end
报告以下错误:“您没想到有一个 nil 对象!...”(数组中没有实例)。然后,我尝试添加
<% if @users? %>
<% @users.each do |user| %>
.
.
.
在视图中。但它也不起作用。
我很高兴能理解我为什么错了。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby search