0

私はレール初心者です。ツイートに単純な検索を実装しようとしていますが、検索している特定のツイートではなく、そこにあるツイート全体が表示されます。SQLITE と Rails 3.2.6 の使用

RailsCasts#37 と他のチュートリアルをたくさん見ましたが、どこで間違いを犯しているのかわかりません。

私のツイートモデル

class Tweet < ActiveRecord::Base
  belongs_to :user
  attr_accessible :body
    def self.search(search)
        if search
            find(:all, :conditions => ['body LIKE ?', "%#{search}%"])
        else
            find(:all)
        end
    end

end

コントローラ

 @tweets = Tweet.search(params[:search])

インデックス ページのフォーム

<%= simple_form_for tweets_path, :method => 'get', :html => { :class => 'pull-right' } do |f| %>
    <%= f.input :search, :label => false, :input_html => { :class => 'span3'} %>
<% end %>

ツイートの移行

class CreateTweets < ActiveRecord::Migration
  def change
    create_table :tweets do |t|
      t.text :body
      t.references :user

      t.timestamps
    end
    add_index :tweets, :user_id
  end
end

検索したときのURL!

http://localhost:3000/tweets?utf8=%E2%9C%93&%2Ftweets%5Bsearch%5D=awesome

ヘルプとサポートを探しています!前もって感謝します!

4

1 に答える 1

0

パラメータの名前が間違っていると思います。ここを参照してください。「form_for に渡される名前は、フォームの値にアクセスするために params で使用されるキーを制御します」。したがって、コントローラーに次のように記述する必要があります。

@tweets = Tweet.search(params[:tweets][:search])
于 2012-08-03T05:02:48.713 に答える