У меня все еще очень трудное время с полиморфными ассоциациями, потому что я не могу делать вложенные формы.Однако, даже не входя в формы, я не могу даже сделать то, что я считаю очень простой задачей.
Например:
#app/models/user.rb
class User < ApplicationRecord
has_many subscriptions, dependent: :destroy, as: :imageable
end
.
#app/models/company.rb
class Company < ApplicationRecord
has_many :subscriptions, dependent: :destroy, as: :imageable
end
.
#app/models/subscription.rb
class Subscription < ApplicationRecord
belongs_to :imageable, polymorphic: true
end
, если я запускаю Company.first.subscriptions.create(name: "Random")
, это работает, но происходит следующее:
@company = Company.new({:name => "Random Company Name"})
@company.subscriptions.build
@company.save
Почему это не удается?Кажется, потому что @company.subscriptions
показывает связанный Subscription
с imageable_type: Company
, но imageable_id: nil
.Это законный случай, когда я не хочу добавлять подписку, но хочу добавить Company
.
Если это так, то как мне получить imageable_id
?С полиморфной ассоциацией, не должно ли imageable_id
автоматически заполняться, когда @company сохраняет?