Ruby on rails 属性访问器未更新rails模型中的值
我有下面的型号Ruby on rails 属性访问器未更新rails模型中的值,ruby-on-rails,ruby,ruby-on-rails-4,attr-accessor,attr-accessible,Ruby On Rails,Ruby,Ruby On Rails 4,Attr Accessor,Attr Accessible,我有下面的型号 class Job < ActiveRecord::Base attr_accessor :incentive end 我希望如果我做了job.incentive,它会返回{id:1} 我也试过这样做 def incentive =(val) @incentive = val end def incentive @incentive end 但这也不起作用。我怎样才能在rails 4中存储临时列值呢?如果脚本很好,您会发现下面的脚本在rails控制台中工作
class Job < ActiveRecord::Base
attr_accessor :incentive
end
我希望如果我做了job.incentive
,它会返回{id:1}
我也试过这样做
def incentive =(val)
@incentive = val
end
def incentive
@incentive
end
但这也不起作用。我怎样才能在rails 4中存储临时列值呢?如果脚本很好,您会发现下面的脚本在rails控制台中工作得非常好:
job = Job.last
job.incentive = { id: 1 }
p job.incentive # returns { id: 1 }
如果重新启动或刷新控制台(或网页),此信息将消失,因为它仅设置在内存中,而未存储到数据库中。
attr\u accessor:incentive
应该可以工作。作业激励设置为某个值后会返回什么?@ArunKumarMohan返回nilwird。我无法在rails 4应用程序中重现此问题。你有一个repo来复制它吗?如果它是一个临时变量,你不能存储到数据库中,它只存在于你的模型实例中,我假设它是一个数据库列名?您是否希望该值最终出现在数据库中?该列的数据类型是什么?
job = Job.last
job.incentive = { id: 1 }
p job.incentive # returns { id: 1 }