[英]Searchlogic: how do I define a namedscope so that I can use OR on an associated model?
所以,我發現了這一點: Searchlogic OR條件導致未定義的方法
但這僅適用於您直接搜索的模型上的字段。 我有一個訂閱模型,但是我想搜索不同訂閱的帳戶名或它們的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 var的調用中必須包含.search
@search = Subscription.search.account_name_full_domain_like(term)
如果您的訂閱模型上有命名范圍,則將返回訂閱記錄。 您的條件和加入似乎有效。 我不確定此命名范圍與您在視圖中似乎正在使用的實例變量@search之間的關系。
您希望將此表單提交到的路徑“ subscription_subscription_path ”嗎? 如果是這樣,請運行“ rake route”,並確保您有一個名為“ subscription_subscription_path”的路徑。
如果要提交到備用路徑,則可以通過執行以下操作來在form_for中指定要提交的URL:
<% form_for @search, :url => subscription_path(@search) %>
有關為form_for指定URL的更多信息,可以在這里找到: http : //api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.