2015-11-21 35 views
0

我有模型用戶。用戶包含:name和:second_name字段。我在模型Rails:to_json方法,添加函數返回值

def full_name 
    self.name + ' ' + self.second_name 
end 

當我打電話的用戶對象上to_json()方法,我得到{: '... 'SECOND_NAME:' ...' name}的定義功能。我如何添加結果full_name字段?

回答

1

如何在User模型中定義as_json方法並覆蓋to_json的默認行爲。

因此,這將成爲:

def as_json(options) 
    super(:methods => [:full_name]) 
end 

僅供參考見: http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html

+0

正如Bryan所說,這是乾淨的,並允許您調用多個類的方法。此外,您還可以通過在選項中添加「except」來排除不必要的項目 – trh

+0

謝謝! – motoroller

0

覆蓋.as_json您的用戶模型中,添加以下行到你的用戶模型:

def as_json(options) 
    super.merge({ 
     full_name: "#{self.name} #{self.second_name}" 
    }) 
end 

而且在你的控制器中,只寫:render @user,不明確調用.to_json

+0

謝謝! – motoroller