我在Mac OS X Mountain Lion中使用Rails 3.2.11和Ruby 1.9.3
我有一个用户模型,我创建了一个名为message
的虚拟属性attr_accessor :message
在我的代码中,我试试这个:
if condition == true
self.message = "Value is True."
else
self.message = "Value is not True"
在我的控制器中,我试试这个
def method
user = User.find(1)
flash[:message] = user.message
end
但是flash消息不会显示任何内容。这是零。如何将模型中设置的值传递给控制器?非常感谢!
答案 0 :(得分:3)
似乎逻辑:当你从你的数据库中检索一个对象时,没有理由它的attr_accessor应该包含任何内容。
坚持你的逻辑,你宁愿:
删除attr_accessor
在您的用户类中创建一个方法。
def message
if condition
"Value is True."
else
"Value is not True"
end
end
请注意,您正在耦合数据和视图,这不是一个好习惯。