我正在尝试搜索user_id关联的模型联系人,但列出公司。
@companies_user = Company.joins{contacts}.where{:contact => {user_id => current_user}}.uniq
我想要的是搜索有一个user_id与current_user相同的联系人的公司名称。
我还没有找到一个例子......我曾经使用过searchlogic,但现在我正在使用Rails 3 ....谢谢!
答案 0 :(得分:1)
晚了一年,但希望它会帮助别人。
基本上Squeel你会做这样的事情:
@companies_user = Company.joins{contacts}.where{contacts.user_id == current_user}
您可以更进一步,搜索联接表中的内容和您要查询的表:
@companies_user = Company.joins{contacts}.where{(contacts.user_id == current_user) & (company_name =~ 'Apple')}
# would translate to
SELECT ... FROM...
<join statements>...
WHERE contacts.user_id = <current_user> AND company.company_name LIKE 'Apple'
请参阅this article
确实如此,以及更多。
答案 1 :(得分:0)
反之亦然
@user = User.find( current_user_id )
@company_names = @user.contacts.map{ |contact| cntact.company.name }.uniq