控制器代码:虽然错了......
def index
@q = Borrow.ransack(params[:q])
@borrows = @q.result.includes(:request => :signup, :inventory => :signup)
end
基本上,借用:
Request
的孩子,当时是Signup
的孩子Inventories
的多对多关系,Signup
在我的Ransack搜索表中,我需要搜索这两组关联。然而第一个效果很好:
工作代码:
<div class="form group">
<%= f.label :request_signup_email_cont %>
<%= f.search_field :request_signup_email_cont %>
</div>
<th><%= sort_link(@q, 'requests.signups.email', "Borrower Email") %></th>
但第二个不是:
无效代码
<div class="form group">
<%= f.label :inventory_signup_email_cont %>
<%= f.search_field :inventory_signup_email_cont %>
</div>
<th><%= sort_link(@q, 'inventories.signups.email', "Lender Email") %></th>
错误:undefined method
inventory_signup_email_eq'适用于Ransack ::搜索&gt;:Ransack :: Search`
我试过的其他内容:
:invenborrow => :inventory => :signup
的一个变体,但这引发了=>
出乎意料的错误,这让我觉得可能无法实现三重链接...... :invenborrow => :inventory
,因为如果我可以获得inventory
,我可以运行搜索并找到注册。但是上面提到了相同的未定义方法......