我从“@ collection.components.include?”的check_box_tag收到错误“未初始化的常量Collection :: CollectionComponent”。我不确定为什么会这样,因为@collection似乎在form_for标签中工作正常,或者我删除了check_box_tag。
_form.html.haml
= form_for @collection do |f|
- if @collection.errors.any?
#error_explanation
%h1= "#{pluralize(@collection.errors.count, "error")} prohibited this collection from being saved:"
%ul
- @collection.errors.full_messages.each do |msg|
%li= msg
.field
- Component.all.each do |component|
= label_tag :component_ids, component.id
= check_box_tag :component_ids, component.id, @collection.components.include?(component), :name => 'collection[component_ids][]'
.field
= f.label :title
= f.text_field :title
.actions
= f.submit 'Save'
collection.rb
class Collection < ActiveRecord::Base
default_scope order('id ASC')
attr_accessible :style_id,
:name,
:title,
:component
has_many :collection_components, :dependent => :destroy
has_many :components, :through => :collection_components
belongs_to :style
validates_presence_of :style
validates_presence_of :title
before_save :create_name
private
def create_name
self.name = title.parameterize
end
end
component.rb
class Component < ActiveRecord::Base
default_scope order('id ASC')
attr_accessible :category_id,
:name,
:title,
:collection,
:style
has_many :collection_components, :dependent => :destroy
has_many :collections, :through => :collection_components
has_many :component_styles
has_many :styles, :through => :component_styles
belongs_to :category
validates_presence_of :category
validates_presence_of :title
before_save :create_name
private
def create_name
self.name = title.parameterize
end
end
collection_components.rb
class CollectionComponents < ActiveRecord::Base
attr_accessible :collection_id,
:component_id
belongs_to :collection
belongs_to :component
end
答案 0 :(得分:0)
Rails正在寻找名为CollectionComponent
的课程,但您只提供名为CollectionComponents
的课程