生徒 (ユーザー) をクラス (studentclasses) に割り当てる必要があります
3 つのテーブルを使用した単純な多対多の関係があります。
Studentclasses (レッスンの詳細)
users (ユーザー... 学生情報)
studentclass_users ( user_idとstudentclass_idを含む結合テーブル)
私は has_many :through を使用しており、モデルは次のようになります。
Studentclass.rb
class Studentclass < ActiveRecord::Base
has_many :studentclass_users
has_many :users, :through => :studentclass_users
end
user.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を追加するために、studentclassの新しいビューの部分的な隠しフィールドを使用しています。それは次のとおりです。
_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"]}, " commit"=>"保存"}
これは問題ないようですが、次のエラーが表示されます。
NameError (初期化されていない定数 ActiveRecord::HasManyThroughSourceAssociationMacroError):
これはネーミングでシンプルなものだと思いますか?どんな助けでもいただければ幸いです