0

我正在尝试搜索由 user_id 关联的模型联系人,但列出公司。

@companies_user = Company.joins{contacts}.where{:contact => {user_id => current_user}}.uniq

我想要的是搜索有联系人的公司名称,该联系人的 user_id 与 current_user 相同。

我还没有找到一个例子......我曾经使用搜索逻辑,但现在在 Rails 3 中......谢谢!

4

2 回答 2

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'

这篇文章

它确实做到了这一点,甚至更多。

于 2012-10-17T10:06:26.577 回答
0

反之亦然

@user = User.find( current_user_id )
@company_names = @user.contacts.map{ |contact| cntact.company.name }.uniq
于 2011-10-06T07:26:40.930 回答