属性を持つBlogPost
モデルがあり:category
ます。新しいBlogPost
フォームを作成しています。選択メニューに、ユーザーが以前のレコードに入力した各カテゴリを入力したいと思います。
BlogPosts
したがって、1つのクエリですべてを検索しUser ID
、入力した各カテゴリのリストを切り上げる必要があります。同じカテゴリが複数のレコードに存在しますが、もちろん、選択メニューにそのコピーを返したいだけです。
ありがとうございました :)
属性を持つBlogPost
モデルがあり:category
ます。新しいBlogPost
フォームを作成しています。選択メニューに、ユーザーが以前のレコードに入力した各カテゴリを入力したいと思います。
BlogPosts
したがって、1つのクエリですべてを検索しUser ID
、入力した各カテゴリのリストを切り上げる必要があります。同じカテゴリが複数のレコードに存在しますが、もちろん、選択メニューにそのコピーを返したいだけです。
ありがとうございました :)
あなたは適切なユーザーSELECT DISTINCT
に返さINNER JOIN
れたカテゴリをすることができます:
Category
.joins( :posts )
.where( posts: { user_id: current_user.id } )
.uniq
これにより、次のようなクエリが送信されます。
SELECT DISTINCT categories.*
FROM categories
INNER JOIN posts ON posts.category_id = categories.id
WHERE posts.user_id = [whatever]
編集注: aと。uniq
の両方のメソッドであることに注意してください。配列にキャストする前に、必ずリレーションで呼び出してください。そうしないと、不明瞭な結果の配列に対してuniqを実行します。これも機能しますが、パフォーマンス的にはばかげています。Relation
Array