【问题标题】:Add an attribute to a Rails model using attr_accessor (or other function)使用 attr_accessor(或其他函数)向 Rails 模型添加属性
【发布时间】:2014-08-06 01:17:13
【问题描述】:

我创建了一个 Rails 模型,比如说Car。我向它添加了一个名为age 的属性(不保存在数据库中)。

class Car < ActiveRecord::Base
  attr_accessor :age 
end

如果我尝试打印汽车的属性,age 不会出现。我发现是因为 attr_accessor 只是定义了一个实例变量。

> my_car = Car.first
> my_car.age = 500
> puts my_car

如何向记录本身添加不持久化到数据库的属性?

【问题讨论】:

  • 你刚刚回答了你自己的问题。
  • @sevenseacat 谢谢,不确定是不是这样。更新了问题,因为我仍然需要知道如何将属性添加到记录而不将其持久化到 db。
  • 您已经拥有 - 您使用 attr_accessor。仅仅因为它没有在inspect 输出中输出,并不意味着它不存在。
  • 我是 my_car.to_json,我需要 age 被包括在内。
  • 万岁,现在我们得到了实际的问题。在你的模型中定义as_json来指定模型所需的json表示。

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord


【解决方案1】:

to_json的参考

使用方法选项将年龄渲染为 json。

my_car = Car.first
my_car.age = 500
puts my_car.to_json(:methods => :age)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多