0

私は愚かなことをしていると確信していますが、私のARコード

@comments = Comment.find(:all, :limit => 10,
                         :joins => "LEFT JOIN `users` ON comments.user_id = users.id",
                         :select => 'comments.*, users.theme')

正しいSQLを返しています:

SELECT comments.*, users.theme from comments LEFT JOIN users on comments.user_id = users.id

そして、それをmysqlに入れると、希望する結果が得られますが@comment.theme、上記のAR呼び出しが行われた後に(@commentsの各ループで)アクセスしようとすると、themeそこにありません。

それで、結合が関連する列に入力できるようにするために、コメントモデルに対して特別なことをしなければなりませんか?Railsは、ドットグラブできるプロパティとしてそれらを追加するだけだと思いました。

4

1 に答える 1

1

これを試して:

@comments.each do |comment|
  puts comment.theme
end

すべてのフィールドは配列 @comments にあり、オブジェクト タイプはコメントです。フィールド名は、元のソースに関係なく、select で使用されているとおりです。

幸運を。

于 2012-06-11T05:04:03.230 に答える