0

単純な検索機能を実行しようとしています。モジュール内の関数です。タイトルと説明の 2 つの列があります。しかし、エラーが発生します。投稿の代わりに、「タイトル」を選択する必要があります。

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

アップデート:

これが私の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 %>
4

1 に答える 1

0

nameテーブルに列がありませpostsん。検索したいのでtitledescription次を試してください

find(:all, 
     :conditions => ['title LIKE ? OR description like ?', "%#{search}%", "%#{search}%"])
于 2013-07-22T08:27:39.167 に答える