1

だから、私はこれを見つけました:SearchlogicOR条件は未定義のメソッドになります

ただし、これは、直接検索しているモデルのフィールドに対してのみ機能します。サブスクリプションモデルがありますが、たとえば、さまざまなサブスクリプションのアカウント名またはother_fieldを検索したいと思います。

上記のリンクから(そして変更されて)私はこれに似た何かをすることができるようにしたいと思います:

  named_scope :account_name_full_domain_like, lambda{ |name|{
     :conditions => ["accounts.name LIKE ? OR accounts.full_domain LIKE ?", "%" + name + "%", "%" + name + "%"],
     :joins => "LEFT JOIN `accounts` ON `accounts`.id = `subscriptions`.account_id"
    }}

しかし今、私はこれでエラーが発生します:

27:     <% form_for @search do |f| %>  

undefined method `subscription_subscription_path' for #<ActionView::Base:0x11061dbc0>

編集:それを理解しました:@search変数の割り当てのための私の呼び出しに.searchを含める必要がありました

@search = Subscription.search.account_name_full_domain_like(term)
4

1 に答える 1

1

名前付きスコープがサブスクリプションモデルにある場合、サブスクリプションレコードが返されます。あなたの条件と参加は有効なようです。この名前付きスコープと、ビューで使用していると思われるインスタンス変数@searchとの関係がわかりません。

このフォームを送信する予定のパス' subscription_subscription_path 'はありますか?その場合は、「rakeroots」を実行し、「subscription_subscription_path」という名前のパスがあることを確認してください。

別のパスに送信する場合は、次のようにして、送信するURLをform_forで指定できます。

<% form_for @search, :url => subscription_path(@search) %>

form_forのURLの指定の詳細については、http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_forを参照してください。

于 2011-09-08T15:12:01.557 に答える