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 }