3

生徒 (ユーザー) をクラス (studentclasses) に割り当てる必要があります

3 つのテーブルを使用した単純な多対多の関係があります。

Studentclasses (レッスンの詳細)

users (ユーザー... 学生情報)

studentclass_users ( user_idstudentclass_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):

これはネーミングでシンプルなものだと思いますか?どんな助けでもいただければ幸いです

4

0 に答える 0