class Foo
has_one :bar
def bar_name
bar.name
end
end
class Bar
belongs_to :foo
end
在控制檯或一個觀點,我可以@foo.bar_name
得到'baz'
。
我知道我可以@foo.as_json(methods: :bar_name)
得到{"id"=>"abc123", "bar_name"=>"baz"}
。
我也可以使屬性非規範化並使它非虛擬化,但在這種情況下我寧願不這樣做。
是否有可能自動返回包含虛擬屬性的模型?
#<Foo id: "abc123", bar_name: "baz">
我想這樣做,因爲我與構建模型嵌套集合的大型對象,而as_json
呼叫從我的抽象化了。
我不明白,你想向客戶端發送'#'或者你希望''Foo'對象在控制檯中被打印出來(例如'puts fooobj#=>#')? –
niceman
假設我沒有發送任何東西給客戶端。我只想將方法的結果顯示在控制檯中,而不顯式調用方法。 –
你想在'as_json'響應中使用這個嗎?如果是這樣,你可以在模型本身重新定義'as_json'。如果你想在對象表示中使用它,你可以重新定義'inspect' – engineersmnky