ruby-on-rails - 如何根据RailsCasts教程在rails中进行简单搜索?

标签 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 =>供应商,操作=>索引:

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 中显示为供应商[name]=?

@searchvendor.id 是一个长字符串,@searchvendor.name 显示错误,名称不是方法。

我被难住了。请帮忙...?

教程链接:

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

最佳答案

  1. 您不应该将@searchterm 传递到您的Vendor.search 方法中吗?每次都通过“检查点”可能不会成功。

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

关于ruby-on-rails - 如何根据RailsCasts教程在rails中进行简单搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827914/

相关文章:

ruby-on-rails - 140个字符,是字符串还是文本?

ruby-on-rails - 使用带 Selenium 的 Capybara,我将如何单击表格行?

ruby-on-rails - 来自 root_url 的简单 link_to

search - HTMX 主动搜索 - 最少 3 个字符

jquery - 将图标添加到 select2 中的选项

php - 允许使用多个关键字在多个列中进行搜索

ruby-on-rails - Rails Number 到印度货币格式转换助手

ruby-on-rails - Rails 中更新验证失败后嵌套属性不会被销毁

php - MySQL 搜索查询 - "Keep"不工作

string - 用于快速全文搜索的数据结构