0

ご存知のように、次のようなモデルがあるとします。

class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 
end

テーブルt_memsにフィールドがありませんexpense

ただし、コントローラーのフィールドにアクセスできます。

TMem.find(1).expense

ただし、アクションが json を返す場合:

render json:  TMem.find(1)

expenseajax リクエストからフィールドを取得できません。レスポンス json にフィールドが含まれていないことがわかります。

したがって、このフィールドをajaxリクエストから取得できるように、モデルをクエリする方法を知りたいです。

4

1 に答える 1

0

to_jsonカスタムメソッドでモデルをオーバーライドする必要があります

次のようにモデルを変更します

class TMem < ActiveRecord::Base
   def expense
     return 'OK'
   end 

   def to_json(options={})
     options[:methods] ||= [:expense]
     super(options)
   end

end

今電話したらto_json

TMem.first.to_json  #=> "{\"t_mem\":{\"id\":1,\"expense\":"OK\"}}"
于 2013-11-07T05:32:30.860 に答える