0

每当我尝试使用

Table.create :a=>"a", :b=>"b"

或者

tab=Table.new
tab.a="a"
tab.b="b"
tab.save!

生产

NoMethodError:nil 的未定义方法“名称”:NilClass

我的表模型是

class Table < ActiveRecord::Base  
 set_table_name "table"
 set_primary_key "id"
end
4

2 回答 2

4

正如大家所说,TABLE是一个保留字。为了将来参考,如果你真的想使用这些保留字,在你的 sql 查询中(我知道你正在使用 AR 抽象),你将不得不像这样使用反引号:

SELECT * FROM `TABLE`

但是,我强烈建议更改您的表名。要注意的另一件事是,您不必将主键设置为,id因为 rails 默认使用idPK。

于 2011-04-17T20:28:56.727 回答
2

TABLE是 MySQL 中的保留字。

更多保留字结帐:

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

于 2011-04-17T20:08:01.013 回答