我正在开设一个夏令营注册应用程序。每天有五个课程,每个课程都有许多课程,露营者可以根据他们的成绩选择。
尝试跟随Dynamic Select Menus上的轨道广播剧集,当露营者选择他们的成绩时,我希望每个会话可用的课程选择按成绩进行过滤。 (即,他们选择二年级..除了二年级的课程选项都被过滤掉了。)
我的第一步是让groups_collection_select工作。但是,当我加载页面时,我收到以下错误。
undefined method `map' for #<Grade:0x007f93810f6600>
如果有人有任何想法,我会很感激!
grade.rb
class Grade < ActiveRecord::Base
attr_accessible :name
has_many :classes
end
class.rb
class Class < ActiveRecord::Base
attr_accessible :fall_grade_id, :session_ids
validates_presence_of :fall_grade_id, :session_ids
belongs_to :grade
has_many :session_class_relationships
has_many :sessions, :through => :session_class_relationships
end
registration.rb
class Registration < AcriveRecord::Base
attr_accessible :fall_grade_id, :session_1_class_id
end
注册/ new.html.haml
...
= simple_form_for(@registration, :html => {:class => 'form-horizontal' }) do |f|
= f.input :fall_grade_id, :collection => 1..6, :prompt => 'Select..', :label => 'Grade'
= f.input :session_1_class_id, collection: @session_1_classes, as: :grouped_select, group_method: :grade
...
答案 0 :(得分:0)
您的@session_1_classes
变量似乎是Grade
个实例,而不是Class
关系。你可能需要这样做:
@session_1_classes = (code_to_find_grade_instance).classes
在您的控制器中。