如何基于RailsCasts教程在rails中进行简单搜索?

时间:2009-05-06 03:29:13

标签: ruby-on-rails search

我按照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显示错误,名称不是方法。

我很难过。帮助......好吗?

链接到教程:

http://railscasts.com/episodes/37-simple-search-form

1 个答案:

答案 0 :(得分:3)

  1. 您是否应该将@searchterm传入Vendor.search方法?每次通过“检查站”可能都不会成功。

  2. @searchvendor将在您执行find(:all)时包含一个数组。您需要遍历数组并对每个项目执行.name。