2017-01-14 11 views
0

他の2つのフィールドを連結するフィールドをモデルに作成しようとしています。このフィールドは多くの場面で使用されるので、私はこれをコントローラーコード外で行いたいと思います。Rails計算フィールドの作成と使用

私は以下のコードを持っていますが、動作しません。プログラム調節で

:プログラムモデルで

@test = Program.pluck(:program_detail) 

... 
has_many :versions 

private 
    def program_detail 
    [owner, name].join(' - ') 
    end 
... 

**私はマイグレーションを使用する必要はありませんが、Railsの用のActiveRecordの答えは間違いなく意志mongoid意味を使用しています私を得るために十分である。

答えて

0

pluckは、モデルクラスの属性ではなく、データベース列でのみ機能します。ただし、すべてのレコードを取得することができます。

Lane.where(..something..).map(&:program_detail) 

新しい計算列を作成するには、だから、あなたprogram_detail

+0

の配列を与えるだけでcreateアクション上のコントローラでそれを行うにすることをお勧めですか? – HoosierCoder

+1

コントローラではなぜですか?連結ロジックはモデル内にあります。これで、どこでも 'program_detail'メソッドを使うことができます。それを 'public'にすることを忘れないでください。 – chumakoff

+0

是非、それをモデルに入れて、それは正しい場所です。 – Iceman

関連する問題