我在活动记录中设置数据有一个奇怪的问题。 当我尝试在方法中设置数据时,它似乎不会影响任何东西。
这是我的班级
class Option < ActiveRecord::Base
serialize :returns_policy_refunds, Array
def reloadRefundOptions!
@returns_policy_refunds = WebSite.get_refund_options #options array
end
end
简单如'class eh?
为了测试序列化我只是在屏幕上吐出数据..
-@options.each do |option|
- option.returns_policy_refunds = ["wtf"] #just to reset things
<b>BLOCK 1</b>
= option.reloadRefundOptions!
= option.returns_policy_refunds
<br>
<b>BLOCK 2</b>
= option.returns_policy_refunds = WebSite.get_refund_options
= option.returns_policy_refunds
现在..我希望在BLOCK1中看到与BLOCK2中相同的内容.. 该方法设置退货政策.. 我在第一个选项中实际看到的是.returns_policy_refunds是[“wtf”]
我错过了什么?我一定做错了,但我不知道是什么。 有什么想法吗?
答案 0 :(得分:2)
在属性分配中忽略@
:
class Option < ActiveRecord::Base
serialize :returns_policy_refunds, Array
def reloadRefundOptions!
self.returns_policy_refunds = WebSite.get_refund_options #options array
end
end
Haven尚未尝试过,但我会说option.returns_policy_refunds
从ActiveRecord定义的属性哈希中获取数据。如果您使用@
分配一个类变量,那么它只是在那里定义,并且只能通过属性读取器或直接发送来访问。