我正在尝试搜索由 user_id 关联的模型联系人,但列出公司。
@companies_user = Company.joins{contacts}.where{:contact => {user_id => current_user}}.uniq
我想要的是搜索有联系人的公司名称,该联系人的 user_id 与 current_user 相同。
我还没有找到一个例子......我曾经使用搜索逻辑,但现在在 Rails 3 中......谢谢!
我正在尝试搜索由 user_id 关联的模型联系人,但列出公司。
@companies_user = Company.joins{contacts}.where{:contact => {user_id => current_user}}.uniq
我想要的是搜索有联系人的公司名称,该联系人的 user_id 与 current_user 相同。
我还没有找到一个例子......我曾经使用搜索逻辑,但现在在 Rails 3 中......谢谢!
晚了一年,但希望它会帮助别人。
基本上使用 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'
看这篇文章
它确实做到了这一点,甚至更多。
反之亦然
@user = User.find( current_user_id )
@company_names = @user.contacts.map{ |contact| cntact.company.name }.uniq