

## Table

[code]

    CREATE TABLE users (
      id INT NOT NULL AUTO_INCREMEN
      name VARCHAR(32),
    );
    
[/code]

## Model

[code]

    class User < ActiveRecord::Base
      attr_accessor :hoge
    
      def set_hoge
        self.hoge = "hogehoge"
      end
    end
    
[/code]

## 実現したいこと

railsコマンドラインにて

[code]

    > user = User.take
    > user.set_hoge
    > user.attributes
    
[/code]

とすると、  
{"id"=>1, "name"=>"Tom"}のように返されますが、

{"id"=>1, "name"=>"Tom", "hoge"=>"hogehoge"}  
のように返す方法が知りたいです!  
よろしくおねがいします。


CC BY-SA 3.0
2016-10-13T10:48:26.513
29526
2017-02-22T12:04:03.747
2016-10-13T11:00:46.767
18848
18848
question
ruby-on-rails ruby
ActiveRecordで取得したobjectの、DBのカラムにない属性も含めてhashで取得したい


as_jsonメソッドを用いると、インスタンスメソッドの結果を含めて返せます。

[code]

    > user = User.take
    > user.set_hoge
    > user.as_json(methods: :hoge) # もしくは user.as_json(methods: [:hoge])
    
[/code]


CC BY-SA 3.0
2016-10-13T12:34:15.630
29529
2016-10-13T12:34:15.630
19154
29526
answer