accepts_nested_attributes_for导致SQLException
问题描述:
我想使用accepts_nested_attributes_for
创建一个has_many
节的Article对象.
I would like to use accepts_nested_attributes_for
to create an Article object that has_many
Sections.
class Article < ActiveRecord::Base
has_many :sections, :order => "position", :dependent => :destroy
belongs_to :categories
accepts_nested_attributes_for :sections, :allow_destroy => true, :reject_if => lambda { |attributes| attributes['title'].blank? }
validates_presence_of :name, :on => :create, :message => "An article must have a title"
end
class Section < ActiveRecord::Base
belongs_to :article
acts_as_list :scope => "article"
has_attached_file :image,
:styles => { :medium => "300x300>",
:thumb => "100x100>" }
end
无论:reject_if
条件何时接受嵌套属性(如果title
属性不是blank?
),我都会看到SQLException.否则,将成功创建没有相关章节的文章.
Whenever the :reject_if
condition accepts the nested attribute (if the title
attribute is not blank?
) I see a SQLException. Otherwise the Article will be created successfully without the associated Sections.
Parameters: {"article"=>{"name"=>"My Article", "category_id"=>"7", "sections_attributes"=>{"0"=>{"title"=>"Section 1", "content"=>"Section 1 of my new article"}}}}
AREL (30.3ms) INSERT INTO "articles" ("content", "category_id", "position", "name") VALUES (NULL, 7, NULL, 'My Article')
Section Load (0.4ms) SELECT "sections".* FROM "sections" WHERE (article) ORDER BY position DESC LIMIT 1
SQLite3::SQLException: no such column: article: SELECT "sections".* FROM "sections" WHERE (article) ORDER BY position DESC LIMIT 1
Completed in 68ms
我试图找出在Section Load
阶段出了什么问题,因为WHERE (article)
是意外的.感谢您的阅读.
I'm trying to figure out what's going wrong during the Section Load
stage, since WHERE (article)
is unexpected. Thanks for reading.