【发布时间】:2013-02-07 21:37:23
【问题描述】:
我正在使用 Rails 3、mac os 山狮和 Ruby 1.9.3
所以我有一个名为 object1 的对象。我为它构建了一个搜索功能,它可以正常工作:
def self.search(search)
search_condition = "%" + search + "%"
if search
find(:all, :conditions => ['name LIKE ?', search_condition])
else
find(:all)
end
end
现在我想在 object2 中使用它。所以在 object2 控制器中我写道:
def search
@results = Object1.search(params[:search])
end
在视图中:
= form_tag object2_path, :method => 'get' do
#{text_field_tag :search, params[:search], :id => 'search_field'}
#{submit_tag "Search", :name => nil}
- for result in @results
%li
= result.name
但由于某种原因,@results 返回 nil。我在做什么有什么问题?非常感谢。
【问题讨论】:
-
scope :search, ->(name) { where("name LIKE ?", name) } -
@results在搜索动作中声明,这是处理请求的动作吗?如果您的视图在处理搜索操作后未呈现,您将在视图中使用@results变量。
标签: ruby-on-rails ruby-on-rails-3