不要自动保存所属关联

时间:2013-03-12 22:02:51

标签: ruby ruby-on-rails-3

我有一个模型订阅,其中包含与参与者的属于关联。

订阅表单使用fields_for来构建关联的参与者字段。

表格中还有一个名为'other_person'的单选按钮。

当other_person字段设置为false时,我想要的是不保存关联的参与者表(因此也不验证)。

1 个答案:

答案 0 :(得分:1)

我将假设other_person是以下示例中Subscription模型的字段:

class Subscription < ActiveRecord::Base
  before_save :remove_empty_participant
  belongs_to :participant

  private

  def remove_empty_participant
    self.participant = nil unless self.other_person
  end
end

如果它不是Subscription模型的字段,则必须删除控制器操作中的属性:

class SubscriptionsController < ActionController

  def create
    params[:subscription].delete(:participant) unless params[:other_person]
    # Save the subscription with your current params...
  end

end

希望它有所帮助。