2016-03-28 14 views
0

ブックマーク機能の実装に問題があります。私は現在のユーザーのIDと一致するブックマークテーブルのすべてのテクニックを照会したいと思います。問題は、アクチュアリング技術の属性を引き出すためのクエリを取得できないことです。私は、これは、クエリbelongs_to関連付けに対してforeing_keyを照会します。 Rails

def index 
@technique = Bookmark.joins(:technique).where(user_id: current_user) 
end 

class Bookmark < ActiveRecord::Base 
belongs_to :user 
belongs_to :technique 
end 

ユーザーモデル

class User < ActiveRecord::Base 
has_many :bookmarks 
end 

私は彼らを確信しているブックマークのモデルとコントローラである

を逃す方法 "UID" を得続けます私の質問で問題ですが、私は立ち往生しています。

+0

です:

これを解決するには、joinsクエリを実行し、技術のマッチコレクションを取得するだろうか? –

答えて

1

Bookmark.joins(:technique).where(user_id: current_user)を実行すると、bookmarksのコレクションが得られ、techniquesではなくなります。あなたがtechniquesをしたい場合

は、次の操作を行うことができます:current_userwhere句に必要な権利のタイプではないので、

Bookmark.joins(:technique).where(user_id: current_user.id).collect(&:technique)

+0

完璧に感謝します! – nharvey27

0

クエリでエラーが発生します。現在のユーザーのIDを指定する必要があります。また、クエリの結果は:bookmarksで、techniquesではなくなります。 user`: `belongs_toのその` Technique`モデルが

def index 
@technique = Bookmark.joins(:technique).where(user_id: current_user.id).collect(&:technique) 
end 
関連する問題