我需要将学生(用户)分配给班级(studentclasses)
我使用 3 个表有一个简单的多对多关系:
学生班(课程详情)
用户 (用户...学生信息)
studentclass_users(包含user_id和studentclass_id的联接表)
我正在使用 has_many :through,我的模型如下所示:
学生类.rb
class Studentclass < ActiveRecord::Base
has_many :studentclass_users
has_many :users, :through => :studentclass_users
end
用户.rb
class User < ActiveRecord::Base
...more here...
has_many :studentclass_users
has_many :studentclasses, :through => :studentclass_users
end
studentclass_users.rb
class StudentclassUsers < ActiveRecord::Base
belongs_to :studentclass
belongs_to :user
end
出于测试目的,我只是在我的学生类新视图中使用了一个隐藏字段,以在创建类时添加用户 ID,如下所示:
_new.html.erb
<%= hidden_field_tag "studentclass[user_ids][]", 29%>
在我的学生类控制器中:
studentclasses_controller.rb
def new
@studentclass = Studentclass.new
end
def create
@studentclass = Studentclass.new(params[:studentclass])
@studentclass.save!
end
我的参数回来了:
参数:{"utf8"=>"✓", "authenticity_token"=>"MjBTf4rtcyo8inADrSxPZB3vLOKtlZRVFlQJJzfCqWs=", "studentclass"=>{"class_title"=>"hjhkj", "user_ids"=>["29"]}, "提交"=>"保存"}
这看起来不错,但我收到以下错误:
NameError(未初始化的常量 ActiveRecord::HasManyThroughSourceAssociationMacroError):
我认为这可能是简单的命名?任何帮助,将不胜感激