2012-08-09 95 views
0

我正在尝试创建一个可以检索信息的表单。到目前为止,我已经通过动作查询实现了一个模型和一个控制器。在导轨中搜索网站

这里的形式:

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

我的控制器有:

高清查询 @Results = Search.search(PARAMS [:查询]) 结束

而且在我的模型有:

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%') 

为什么我的代码会产生这个错误?

+0

做你真的有一个名为列的“第一”,在你的客户模型?你能显示db/schema.rb文件吗? – dimuch 2012-08-09 14:21:40

回答

0

这可能是因为您在数据库中的客户表中没有第一列。

您是否也许是first_name?

0

试试这个

Customer.find(:all, :conditions => ["'first' LIKE ?", "%#{search}%"]) 
+0

这似乎工作只是缺少一个模板 – Jseb 2012-08-09 14:33:25