【发布时间】:2013-02-17 04:16:43
【问题描述】:
我正在尝试保存具有外键属性的对象。我不明白为什么它不起作用。外键在数据库中定义为非空。
class Store < ActiveRecord::Base
attr_accessible :latitude, :longitude, :description
validates :store_group, :presence => true
validates :description, :presence => true, :length => {:maximum => 500}
validates :latitude, :presence => true
validates :longitude, :presence => true
belongs_to :store_group
end
class StoreGroup < ActiveRecord::Base
attr_accessible :name, :description, :image
validates :name, :presence => { :message => "Store group can not be empty" }
end
所以,我正在尝试保存商店:
group = StoreGroup.new(:name=>"name",:description=>"description",:image=>"image")
store = Store.new(:store_group=>group,:latitude=>1,:longitude=>1,:description=>"description")
store.save
但是,MySQL 引发了一个异常:
Mysql2::Error: Column 'store_group' cannot be null: INSERT INTO `stores` (`created_at`, `store_group`, `description`, `latitude`, `longitude`, `updated_at`) VALUES ('2013-02-17 04:09:15', NULL, 'description', 1.0, 1.0, '2013-02-17 04:09:15')
为什么? 在此先感谢:)
【问题讨论】:
-
我也试过 Store.new(:store_group=>group.id...),但没用。
标签: mysql ruby-on-rails ruby-on-rails-3 foreign-keys rails-activerecord