我按照RailsCasts教程使用自动完成进行简单搜索,但它不起作用。 :(
查看/供应商/索引:
<% form_tag vendors_path, :method => 'get' do %>
<%= text_field_with_auto_complete :vendor,
:name,
{},
{:method => :get, :class => 'textbox'} %>
<%= submit_tag "Search", :name => nil %>
<% end %>
</div>
<%= @searchvendor.id %>
<%= @searchterm %>
我将@searchterm和@ searchvendor.id作为验证步骤。
所以这应该调用controller =&gt;供应商,行动=&gt;指数:
def index
@searchterm = params[:vendor][:name]
@searchvendor = Vendor.search('checkpoint')
为供应商/型号创建搜索方法如下:
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
输出?
@searchterm会显示输入的值,因为它显示在URL中作为vendor [name] =?
@ searchvendor.id是一个长字符串,@ searchvendor.name显示错误,名称不是方法。
我很难过。帮助......好吗?
链接到教程:
答案 0 :(得分:3)
您是否应该将@searchterm传入Vendor.search方法?每次通过“检查站”可能都不会成功。
@searchvendor将在您执行find(:all)时包含一个数组。您需要遍历数组并对每个项目执行.name。