0

情報を取得できるフォームを作成しようとしています。これまで、アクションクエリを使用してモデルとコントローラーを実装してきました。

フォームは次のとおりです。

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

私のコントローラーには:

def query @results = Search.search(params [:query])end

そして私のモデルでは:

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

しかし、それは私に次のエラーを与えます:

ActiveRecord::StatementInvalid in SearchesController#query

SQLite3::SQLException: no such column: first: SELECT "customers".* FROM "customers"  WHERE (first LIKE '%test%')

コードでこのエラーが発生するのはなぜですか?

4

2 に答える 2

0

これはおそらく、DBのcustomersテーブルに最初の列がないためです。

多分first_nameのことですか?

于 2012-08-09T14:24:01.870 に答える
0

これを試して

Customer.find(:all, :conditions => ["'first' LIKE ?", "%#{search}%"])
于 2012-08-09T14:25:28.477 に答える