2013-07-22 47 views
0

我正在尝试做一个简单的搜索功能。这是模块中的功能。我有两列:标题和说明。但是我得到一个错误。我不需要在那里选择“标题”。在导轨中使用搜索功能的问题

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

我得到的错误是:

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

UPDATE:

这是我的index.html.erb文件。我基本上使用了一个表格,并列出了所有帖子及其内容。如何更改文件以仅显示搜索到的项目?最初都应该列出。我无法理解如何做到这一点。有任何想法吗?

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

<% @posts.each do |post| %> 
    <h2><%= link_to post.title,post %></h2> 
    <p><%= post.content %></p> 
    <hr /> 
    <%= link_to "Add a new post", new_post_path %> 
<% end %> 
+0

:HTTP:/ /stackoverflow.com/questions/7911014/activerecord-find-and-only-return-selected-columns – Trompa

回答

0

你有没有列name在表posts我想你想的title & description搜索如果你甭AR它将搜索整个行,以便尝试以下

find(:all, 
    :conditions => ['title LIKE ? OR description like ?', "%#{search}%", "%#{search}%"]) 
+0

请检查我的更新。迄今为止你的答案已经有所帮助 – Aravind