0

user_idに関連付けられているモデルの連絡先を検索しようとしていますが、会社を一覧表示しています。

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

私が欲しいのは、current_userと同じuser_idを持つ連絡先がある会社の名前を検索することです。

例は見つかりませんでした...以前はsearchlogicを使用していましたが、現在はRails3にいます...ありがとうございます。

4

2 に答える 2

1

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 に答える