我无法让 create_association(attributes = {}) 方法适用于 Rails 中的关联模型。
class Gwgiftwhip < ActiveRecord::Base
has_one :gift, :autosave => true, :dependent => :destroy
validates :gift, :presence => true
end
class Gift < ActiveRecord::Base
belongs_to :gwgiftwhip
end
Active Record 关联指南中的belongs_to 部分建议您应该能够使用方法:create_association(attributes = {}) 创建相关模型并在使用 belongs_to 关联时将其保存。但是,由于相关模型参数“gift”未设置,以下实现会导致保存错误。
class GiftsController < ApplicationController
...
def inbound
@gift = Gift.new(params.slice(*Gift.new.acceptable))
if @gift.create_gwgiftwhip({:user_id => @gift.user_id}, :without_protection => true)
...
end
end
以下内容有效,但似乎超出了预期用途。它正在创建一个相关模型,然后将自己设置为相关模型。这需要另一个步骤来保存。
class GiftsController < ApplicationController
...
def inbound
@gift = Gift.new(params.slice(*Gift.new.acceptable))
@gift.create_gwgiftwhip({:user_id => @gift.user_id}, :without_protection => true).gift = @gift
if @gift.gwgiftwhip.save
...
end
end