0

postauthorモデルを持っています。

author has_many :posts

今、私はauthorいくつかのposts

オブジェクトposts' titles全体ではなく、配列としてのみを取得するエレガントな方法はありますか?post

それだけでなく、タイトルの配列を取得するauthor.postsようなものです。author.posts.only(:title)['post1','post2','post3']

その構文は JSON モジュールからのもので、この場合は機能しませんが、 を反復処理して新しい配列にプッシュ.only(:title)するよりも洗練された方法があるかもしれません。のように DB にクエリを実行するもの。poststitlesselect titles from posts where author_id = 23

?

4

1 に答える 1

5

使用するpluck

author.posts.pluck(:title)

http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck

摘み取る(列名)

このメソッドは、直接 SQL クエリとして単一の列で選択を実行するように設計されています 指定された列名の値を持つ配列を返します 値は、列と同じデータ型を持ちます。

于 2012-07-22T19:42:44.400 に答える