Я надеюсь, что кто-то может помочь, если я быстро ухожу. У меня есть следующая настройка сверху вниз, и я удалю ложный код. Я хотел бы сохранить полиморфную модель поиска, поскольку rcs_prospecting и ara_prospecting используют поле из этой модели, а также имеют свои собственные поля.Rails 4 полиморфный через ассоциацию
contact.rb
class Contact < ActiveRecord::Base
has_one :ara_prospecting
has_one :rcs_prospecting
....
end
ara_prospecting.rb
class AraProspecting < ActiveRecord::Base
belongs_to :contact
has_one :prospecting, as: :prospectable
accepts_nested_attributes_for :prospecting, :reject_if => :all_blank, :update_only => true
end
rcs_prospecting.rb
class RcsProspecting < ActiveRecord::Base
belongs_to :contact
has_one :prospecting, as: :prospectable
accepts_nested_attributes_for :prospecting, :reject_if => :all_blank, :update_only => true
end
prospecting.rb
class Prospecting < ActiveRecord::Base
belongs_to :prospectable, polymorphic: true
belongs_to :user
end
То, что я пытаюсь сделать, - создать has_one посредством ассоциации с моделью пользователя из модели контакта через ассоциации ara_prospecting и rcs_prospecting. По сути, я хотел бы
has_one :ara_user, through...(ara_prospecting -> prospecting -> user)
has_one :rcs_user, through...(rcs_prospecting -> prospecting -> user)
Я рассмотрел различные статьи и попробовал разные вещи, но, похоже, не мог их взломать.
Любая помощь будет принята с благодарностью.
Спасибо заранее
Спасибо за ваше предложение. Поисковая модель представляет собой полиморфную модель, в которой rcs_prospecting и ara_prospecting «inherit», но каждая из этих моделей также имеет свои собственные уникальные поля. Не уверен, что ваше предложение будет работать в этом случае? – Dudedolf
Ну, если модели 'rcs' и' ara' имеют только несколько полей, вы можете просто перенести их в «поисковую» модель. Конечно, у вас всегда будут какие-то «nil» (или, может быть, пустые) значения, но это сработает. Если у них есть куча полей (скажем, 6 или более каждый), объединение их может быть не лучшей идеей. Но в любом случае это сработает. –
Спасибо за помощь. Я хотел бы придерживаться метода в настоящее время, поскольку все это работает очень хорошо, и это также хороший способ изучить различные методы. Ассоциация работает, ссылаясь на нее через каждую модель, но было бы хорошо знать способ иметь прямую связь от контактной модели. еще раз спасибо – Dudedolf