2

我是 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 %>

在模型>产品中我放了这个:

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

在控制器> store_controller 中:

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

问题是当我搜索时向我展示了我拥有的所有产品,而不仅仅是我搜索的内容,而且 url 正在更改为 ...../?utf8=%E2%9C%93&search=iphone+4

有什么想法吗?

4

2 回答 2

4
<% form_tag ...

必须:

<%= form_tag ...
  ^
于 2012-07-13T11:12:17.080 回答
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

并且像疯了一样工作!

于 2012-07-16T11:33:26.840 回答