2009-05-06 9 views
2

私はRailsCastチュートリアルに従って、オートコンプリートで簡単な検索を行いましたが、うまくいきません。 :(RailsCastチュートリアルに基づいてレールで簡単な検索を行うには?

ビュー/ベンダー/インデックス:

<% form_tag vendors_path, :method => 'get' do %> 
    <%= text_field_with_auto_complete :vendor, 
             :name, 
             {}, 
             {:method => :get, :class => 'textbox'} %> 
    <%= submit_tag "Search", :name => nil %> 
<% end %> 
</div> 
<%= @searchvendor.id %> 
<%= @searchterm %> 

私は、検証ステップとして@searchtermとの@ searchvendor.idを含ま

これは、コントローラ=>ベンダー、アクション=>インデックスを呼び出す必要があります。 :

def index 
    @searchterm = params[:vendor][:name] 

    @searchvendor = Vendor.search('checkpoint') 

とベンダー/モデルのために、以下のように検索方法が作成されます。

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

出力は?

@searchtermは、URLにベンダー[名前] =と表示される値を表示します。

@ searchvendor.idは長い文字列で、@ searchvendor.nameはエラーを表示します。名前はメソッドではありません。

私は困惑。助けてください?チュートリアルへ

LINK:

http://railscasts.com/episodes/37-simple-search-form

+0

あなたは – RichH

答えて

3
  1. あなたVendor.search方法にあなたの@searchtermを渡すことではないでしょうか? 「チェックポイント」に合格するたびに、そのトリックをやることはないでしょう。

  2. @searchvendorは、find(:all)を実行している間、配列を格納します。配列全体を繰り返し処理し、各項目に対して.nameを実行する必要があります。

+0

権利を使用しているチュートリアルへのリンクを追加したいことがあり、それを渡した - 私はそれを変更して、カット/ペースト健全性チェックを行うには間違ったコード...しかし、#2問題のように思える... !!まずそれを試してみましょう! – Angela

+0

大丈夫ですが、params [:name]とparams [:vendor] [:name]を渡していますが、それは意味をなさないようですが、それは爆発しました。 – Angela

+0

どのように爆撃された? params [:name]、params [:vendor] [:name]、または単にparamsの値をチェックするために、Netbeansのようなデバッガを使用しましたか? – RichH

関連する問題