私はクイズアプリで作業していますが、そのクイズのスコアに登場したクイズと共にユーザーを追跡しなければならないので、結合テーブル(has_and_belongs_to_manyすべてのヘルプは高く評価されますスコアデータをquiz_userジョインテーブルに挿入する
quiz_id、USER_IDを持つことになりますし、スコアはそれについて移動するための最良の方法かもしれないが、私はテーブルにスコアを挿入することはできないのです関係)quizzes_user ..
私はクイズアプリで作業していますが、そのクイズのスコアに登場したクイズと共にユーザーを追跡しなければならないので、結合テーブル(has_and_belongs_to_manyすべてのヘルプは高く評価されますスコアデータをquiz_userジョインテーブルに挿入する
quiz_id、USER_IDを持つことになりますし、スコアはそれについて移動するための最良の方法かもしれないが、私はテーブルにスコアを挿入することはできないのです関係)quizzes_user ..
has_and_belongs_to_many
has_many through:
を使用しないでください。
class User < ApplicationRecord
has_many :results
has_many :quizzes, through: :results
end
class Result < ApplicationRecord
belongs_to :user
belongs_to :quiz
end
class Quiz < ApplicationRecord
has_many :results
has_many :users, through: :results
end
has_and_belongs_to_many
協会が参加するエンティティのためのモデルを持っていないので、それを直接照会したり、結合テーブルに列を追加するまっすぐ進む方法はありません。
ここでは、のようなもので、「結果/スコア」を作成します。あなたはinstanciatingないから、それらの機能とメモリを節約する必要は決してないだろうことを知っていれば
@quiz.results.create(user: current_user, score: 99)
has_and_belongs_to_many
だけで、実際には良いアイデアですモデルに参加する。これは、結合エンティティがそれ自体の実際の「もの」でない場合にのみ当てはまります。
ジョイントテーブルでは、スコアを保存することができないため、モデルのスコアを別のテーブルスコアにする必要があります。スコアスコアはユーザーに属し、クイズに属し、すべてのスコア –