如何获取具有某些默认值rails mysql的列的值

时间:2014-11-27 09:00:50

标签: ruby-on-rails-3 ruby-on-rails-3.2 mysql2

我有一个User模型,带有属性email,name ... 我想添加一个列has_agreed,默认值为true。所以我添加了迁移并运行它,它在数据库中正确显示。现在,当我获取值@user.has_agreed时,它不会返回任何值。我在可访问的属性(Rails 3.2)中编写了has_agreed。 如果我通过此特定用户的更新命令手动更改数据库的内容,以便将id为1的用户的has_agreed值更改为false,然后运行相同的调用@user.has_agreed,则返回false。

我有历史数据,我想添加此默认列,但不能也不打算通过数据库手动更新此列。如何获得价值?

此外,问题是只有用户表中的旧用户。对于新用户,它工作正常。

1 个答案:

答案 0 :(得分:0)

在user.rb

class User def has_agreed # use this line code. if has_agreed not equal false # read_attribute(:has_agreed) || default_velue if read_attribute(:has_agreed).blank? ## default value true else read_attribute(:has_agreed) end end end