2

我在轨道上有两个模型。首先是患者模型

class Patient

attr_accessible :name, :age, :sex, :female_attributes
has_one :female, dependent => :destroy
accepts_nested_attributes_for :female, allow_destroy => true

end

第二个模型为女性患者提供额外信息

class Female
belongs_to :patient
attr_accessible :patiend_id, :pregrnant_now: :childbirths
end

注意:我没有创建数据库架构,也无法更改它。

所以我的问题是:如何通过检查患者对象中的 :sex 属性来拒绝将女性对象保存在数据库中?

我试过

reject_if => lambda { |a| a['sex'].to_i == 0 ) }

但它没有用。(性别是一个整数,男性为 0,女性为 1)

有什么想法吗??

4

1 回答 1

3

我知道这很旧,但我刚刚遇到了同样的问题。您可以reject_if在患者模型中使用和传递符号。

class Patient

  attr_accessible :name, :age, :sex, :female_attributes
  has_one :female, dependent => :destroy
  accepts_nested_attributes_for :female,
    reject_if: :female_patient?, 
    allow_destroy => true

  def female_patient?
    self.sex.to_i == 1
  end
end
于 2016-01-11T23:45:23.063 回答