3 модели ассоциации в рельсах - PullRequest
1 голос
/ 13 марта 2019

У меня есть 3 модели в моем рельсовом приложении Пользователи, Магазины, Продукты. Пользователи могут добавлять магазин и добавлять товары в свой магазин.

Users.rb

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
         has_many :products, dependent: :destroy
         has_one :shop
end

Shop.rb

class Shop < ApplicationRecord
    mount_uploader :imageshop, ImageUploader
    belongs_to :user
end

Product.rb

class Product < ApplicationRecord
    mount_uploader :image, ImageUploader
    mount_uploader :imagetwo, ImageUploader
    mount_uploader :imagethree, ImageUploader
    belongs_to :user
end

Я новичок в рельсах и не могу понять, как добавить сопутствующие товары в магазины. Если вы, ребята, можете помочь, это будет очень много значить для меня.

1 Ответ

2 голосов
/ 13 марта 2019

Добавление has_many ассоциации к Shop модели.

Shop.rb

class Shop < ApplicationRecord
  mount_uploader :imageshop, ImageUploader
  belongs_to :user
  has_many :products
end

Product.rb

class Product < ApplicationRecord
    mount_uploader :image, ImageUploader
    mount_uploader :imagetwo, ImageUploader
    mount_uploader :imagethree, ImageUploader
    belongs_to :user
    belongs_to :shop
end

Кроме того, добавьте столбец shop_id в таблицу Products. Вы можете легко сгенерировать правильную миграцию для этого, используя:

rails g migration add_shop_id_to_products shop:references

Для получения дополнительной информации об ассоциациях Rails, посетите Ассоциацию активных записей, руководство по Rails

...