0
我有了一個Payoption它可以使用STI子像這樣不同類型的事件模型:模型製作和STI子協會
class Event < ActiveRecord::Base
has_one :payoption, dependent: :destroy
accepts_nested_attributes_for :payoption
end
class Payoption < ActiveRecord::Base
belongs_to :event, :polymorphic => true
PAY_OPTION = ["BankPayoption", "CashPayoption"]
end
class BankPayoption < Payoption
belongs_to :event
end
class CashPayoption < Payoption
belongs_to :event
end
我創建一個事件和現金/ BankPayoption在相同的控制器這樣,還是有些硬編碼和功能缺失,同時發展:
def new
@event = Event.new
@event.build_payoption
end
def create
@event = Event.new(event_params)
@event.user_id = current_user.id
if params[:event][:payoption_attributes][:type] == "BankPayoption"
@payoption = BankPayoption.new
@payoption.phone = "0734176395"
@payoption.event = @event
@payoption.save
@event.payoption = @payoption
end
@event.save
redirect_to @event
end
兩個事件和BankPayoption被創建和BankPayoption得到corrent事件ID但事件根本不會和遺體得到任何Payoption ID零。認爲存在STI /多態性的問題,但無法弄清楚如何解決它。
在此先感謝
感謝您的回答。這給了我一個「未知的屬性:event_type」在「新」方法的@ event.build_payoption行(在我的帖子中添加)。 –
你真的想要'payoption'上的多態關聯嗎?如果沒有擺脫':polymorphic => true' – usha