私は1週間前に自分のモデルを作成しましたが、私が今知っていることはたくさん知りませんでした。多くのラボを持つことができ、多くの申し出 多くのアソシエーションとhas_manyを経由して、
オファーモデルを持つことができます
- ラボモデルを:私が達成したい何
は作成することです。
#MIGRATION FILES BELOW: class CreateLabs < ActiveRecord::Migration[5.0] def change create_table :labs do |t| t.string :name ... t.timestamps end end end class CreateOffers < ActiveRecord::Migration[5.0] def change create_table :offers do |t| t.string :name ... t.timestamps end end end # Join table: class CreateLabChain < ActiveRecord::Migration[5.0] def change create_table :lab_chain do |t| t.references :lab, foreign_key: true t.references :offer, foreign_key: true t.timestamps end end end
そして、ここでのモデルファイルがどのように見えるかです:
class Lab < ApplicationRecord
has_many :offers, through: :lab_chain
has_many :lab_chains
end
class Offer < ApplicationRecord
has_many :labs, through: :lab_chain
has_many :lab_chains
end
class LabChain < ApplicationRecord
belongs_to :lab
belongs_to :offer
end
私はちょうど私が私が見てきたすべてのそれらのチュートリアルについてわからないように私が正しくそれをすべてを書いたかどうかを知りたいです読んでください。
私のオファーには多くのセクションがあり、セクションには多くのoffer_itemsが必要ですか?私は追加する必要があります:
を提供する:
has_many :offer_items
belongs_to :offer
とOfferItemする:
belongs_to :section
節へ
has_many :sections
has_many :offer_items, through: :section
、その後の? 私が前に述べたように、私はコード(別の言語)と関係がある唯一の人だったので、私たちの学校プロジェクトのウェブサイトを作る人としてボランティアでした。それは私が思ったよりも難しいです。
EDIT
どのようにしても、正しく自己を追加するセクションに参加し、そのセクションには、上のサブセクションを持っているとことができますか?
セルフは、多くの協会への正しい多くのように見えるんマイグレーションファイル
t.references :parent_section, foreign_key: "section_id"
アドバイスありがとうございます!セクションモデルに自己結合を追加したいのですが?したがって、セクションにはサブセクションがありますか?コードを含むコードを編集 – Ancinek
@Ancinek自己結合を実行する場合は特に、サブセクションモデル/テーブルは必要ありません。セクションテーブルにはparent_id列が必要です。カテゴリは、別のカテゴリレコードを示すparent_id値を持つサブカテゴリです。 parent_idがNULLのカテゴリはトップレベルのカテゴリです。したがって、has_many:sub_section、class_name: "Section"、foreign_key::parent_idなどのコードを作成できます。その後、セクションテーブルにparent_id列を追加するための移行を作成する必要があります。 –