在此之前我应该注意,我的朋友从我的git repo中撤出了,这对他来说非常有效。
数据库具有属性,并设置了attr_accessible
。但是当试图在视图中访问它时,Rails会抛出此错误undefined method 'is_free' for #<Account:0x007fb53bc91ec0>
。
参考数据库:t.boolean "is_free", :default => false
另一个非常奇怪的事情是你可以看到控制台中存在该属性。
1.9.3p194 :005 > a.is_free
=> false
我已经删除,创建并重新迁移数据库但没有成功。我删除了整个文件夹,从git重新克隆并重新创建数据库但没有成功。
我不知道发生了什么......它只是表现得很乱。请帮忙,我正在失去理智。
答案 0 :(得分:1)
更改
a.update_attribute(:is_free, :true)
要
a.update_attribute(:is_free, true)
答案 1 :(得分:1)
这样的方法仅在您请求它的方式获取该列时才存在。默认情况下,它的工作方式,但可以限制使用select
加载哪些列。
找出所拥有数据的一种非常简单的方法是将其放在您的视图中:
raise a.attributes.inspect
a
是有问题的记录。如果已加载,您应该看到is_free
属性。如果没有,请查看log/development.log
以查看执行了SELECT
个查询。