私はキャンプのためのキャンパーを登録するレールアプリに取り組んでいます。最初にあなたの名前、電子メールなどを使ってサインアップします。あなたのプロフィールが作成されたら、あなたはキャンプに登録することができます。キャンプがまだ満員でない場合、あなたはすぐに登録されます。それが満杯の場合、あなたは待機リストに入れられます。今は4つのモデルがあります:キャンパー(名前、電子メールなど)、キャンプ(名前、場所など)、登録、およびウェイトリスト。 アイデアは、キャンピングカーが多くのキャンプに登録できるようにすることです。私のクラスは以下の通りです:Rails - 同じモデル上に複数の 'has_many through'関連がある
# camper.rb
has_many :enrolled_in, :class_name => 'Camps', through: :enrollments, dependent: :destroy
has_many :waitlisted_in, :class_name => 'Camps', through: :waitlists, dependent: :destroy
# camp.rb
has_many :enrolled_campers, :class_name => 'Camper', through: :enrollments
has_many :waitlisted_campers, :class_name => 'Camper', through: :waitlists
ビューからこれらのモデルにアクセスする際に問題があります。ここでshow.html.erbは、次のようになります。
<!-- Listing camps -->
<h2>Camps</h2>
<p>
<strong>Name:</strong>
<%= @camper.enrolled_in.name %> <!-- This is where I get the error -->
</p>
<!-- Adding camps -->
<h2>Add a camp:</h2>
<%= form_with(model: [@camper, @camper.enrolled_in.build ]) do |form| %>
<p>
<%= form.label :name %><br>
<%= form.text_field :name %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
しかし、私は次のエラー取得しています:
ActiveRecord::HasManyThroughSourceAssociationNotFoundError in Campers#show
Could not find the source association(s) "enrolled_in" or :enrolled_in in model Enrollment. Try 'has_many :enrolled_in, :through => :enrollments, :source => '. Is it one of camp or camper?
をそして、私は正直に間違って何が起こっているのかわかりません。私はデータベースとレールがかなり新しいので、簡単に手に入れてください。