0

Мне нужна помощь с моими ассоциациями Rails 4. У меня есть следующие 4 модели:Rails 4 Ассоциации: Справка по созданию базы данных

class User < ActiveRecord::Base 
    has_many :check_ins 
    has_many :weigh_ins, :through => :check_ins 
    has_many :repositionings, :through => :check_ins 
end 

class CheckIn < ActiveRecord::Base 
    belongs_to :user 
    has_one :weigh_in 
    has_one :repositioning 
end 

class Repositioning < ActiveRecord::Base 
    # belongs_to :user 
    belongs_to :check_in 
end 

class WeighIn < ActiveRecord::Base 
    # belongs_to :user 
    belongs_to :check_in 
end 

Вопрос: Если я настроить таким образом, как бы я вход repositionings и weigh_ins отдельно, но до сих пор они связаны между собой через единый чек в?

ответ

1

Вам нужно было бы сохранить один из идентификаторов другой ассоциации в чтобы заставить его работать.

Например, скажем:

  1. Вы создали фиксирование.
  2. Теперь добавьте Изм.положение к этой проверке в
  3. Хранить ID объекта репозиционирования
  4. При добавлении вашего объекта WeighIn, вы бы просто сослаться на правильную записи CheckIN:. correct_checkin_record = CheckIn.where(repositioning: the_repositioning_id)
  5. Вы можете добавить Объект WeighIn к этой конкретной записи.

Альтернативный (и более простой) метод заключается в доступе к CheckIn непосредственно через пользователя: correct_checkin_record = @user.checkin - это будет каждый раз проверять правильную проверку.

Я включил оба варианта, чтобы визуализировать именно то, что происходит в отношении.

0

Вы хотите, чтобы пользователи вводили взвешивание и репозиционирование на разных страницах?
Наличие весов и репозиционирование, введенное отдельно, но по-прежнему являющееся частью одной проверки, отлично подходит для этой настройки.
Его дело в том, чтобы получить тот же объект check_in и сделать ассоциации с этим объектом, что может быть сделано через контроллер, передав в параметрах идентификатора check_in и сделав CheckIn.find(params[:id])

Смежные вопросы