最近,我遇到了一个问题。
我想使用 Json 表单在 Ruby on Rails 中传输模型信息。原始功能将仅封装此模型中的所有属性。但是这个模型有一个子模型。由 has_many 定义链接。
如果我需要 to_json 函数可以将子模型属性封装在里面。我可以做什么?
最近,我遇到了一个问题。
我想使用 Json 表单在 Ruby on Rails 中传输模型信息。原始功能将仅封装此模型中的所有属性。但是这个模型有一个子模型。由 has_many 定义链接。
如果我需要 to_json 函数可以将子模型属性封装在里面。我可以做什么?
例如,您可以采用另一种方法并使用JSON 构建器。或者只是覆盖to_json
要更改默认行为的模型的方法。
要在 ActiveRecord 模型的 JSON 中包含/排除属性,请覆盖该as_json
方法。
def as_json(opts)
super(opts).merge(
"other_1" => "Some value",
"other_2" => self.get_other_value
)
end
调用 super 将允许您包含所有属性的标准 JSON,然后合并其他属性。或者只是为属性构造一个哈希。