我目前正在为现有数据库开发管理工具,在搭建特定表时遇到了一个奇怪的问题。
这是使用的表的架构rake db:schema:dump
:
create_table "locality", :force => true do |t|
t.integer "version", :limit => 8, :null => false
t.string "truth_id", :null => false
t.string "truth_record_id", :null => false
t.binary "deleted", :limit => 1, :null => false
t.string "internal_code", :null => false
t.string "iso_code"
t.string "materialized_path", :null => false
t.string "invariant_name", :null => false
t.binary "published", :limit => 1, :null => false
t.float "geo_point_latitude", :default => 0.0
t.float "geo_point_longitude", :default => 0.0
t.string "class", :null => false
t.integer "hut_count", :default => 0
t.integer "hotel_count", :default => 0
t.string "destination_url"
end
add_index "locality", ["truth_record_id"], :name => "truth_record_id", :unique => true
我使用schema_to_scaffold gem 从转储的模式创建我的脚手架:
rails g scaffold locality version:integer truth_id:string truth_record_id:string
deleted:binary internal_code:string iso_code:string materialized_path:string
invariant_name:string published:binary geo_point_latitude:float
geo_point_longitude:float class:string hut_count:integer hotel_count:integer
destination_url:string
此工作流程适用于许多其他表,但是在 rails 控制台中访问 /localities 或 Locality.all 时,我得到了它:
irb(main):001:0> Locality.all
Locality Load (2.1ms) SELECT `locality`.* FROM `locality`
NoMethodError: undefined method `attribute_method_matcher' for "Country":String
“国家”:字符串来自哪里?起初我认为模型名称“locality”在某种程度上是 i18n 东西的 rails 保留者,但在命名模型“Bla”时会发生同样的问题。
我正在使用 rails 3.2.13 和 MySQL 数据库。