在ror中搜索数据库

时间:2012-07-13 11:10:02

标签: ruby-on-rails

我是RoR的新手。根据书(ruby on rails 4th edition),我完成了它。但我正在尝试为客户提供一个搜索选项,以便更轻松地找到产品。我正在尝试使用此示例http://railscasts.com/episodes/37-simple-search-form

我已添加了视图>存储>索引此:

<%= form_tag products_path, :method => 'get' do %> 
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :name => nil %>
  </p>
<% end %>

在模型&gt;产品中我已经说出了这个:

def self.search(search)
  if search
    find(:all, :conditions => ['title LIKE ?', "%#{search}%"])
  else
    find(:all)
  end
end

并在控制器&gt; store_controller中:

 @products = Product.search(params[:search])

问题是当我在搜索时向我显示我拥有的所有产品,而不仅仅是我搜索的内容和网址正在改变..... /?utf8 =%E2%9C%93&amp; search = iphone + 4

什么想法PLZ?

2 个答案:

答案 0 :(得分:4)

<% form_tag ...

必须是:

<%= form_tag ...
  ^

答案 1 :(得分:2)

好吧我发现了!!!最后...

在store_controller中我在def索引这行:@products = Product.all并导致问题。没有store_controller:

class StoreController < ApplicationController
    skip_before_filter :authorize
        @products = Product.all
  def index
    @products = Product.search(params[:search])

    @cart = current_cart
  end
end

和工作一样疯狂!