findを使用して特定の列のみを選択するかどうか、またはこのような場所を選択するかどうかはわかります。
Post.find(10).select("column1")
しかし、このようなコードを作成する場合post.user.username
(ActiveRecordの関連付けに依存)、user
テーブルから数列だけを選択したい場合、その方法を見つけることができません。
findを使用して特定の列のみを選択するかどうか、またはこのような場所を選択するかどうかはわかります。
Post.find(10).select("column1")
しかし、このようなコードを作成する場合post.user.username
(ActiveRecordの関連付けに依存)、user
テーブルから数列だけを選択したい場合、その方法を見つけることができません。
選択オプションを使用できます
すべての投稿のユーザー名を選択するには
Project.select(["id", "name"])
where条件で
Project.select(["id", "name"]).where("id=1")
HTH
あなたは次のようなことをすることができます:
Post.find_by_sql("select * from posts P inner join users U on U.id = P.user_id where U.id = 10").collect{|x| x.<column_name>}
投稿モデルでは、関連付けを次のように定義できます。
belongs_to :user, :select => [:username]
次に、投稿を介してユーザーを参照すると、指定された列のみが選択されます。