我在轨道上有两个型号。 第一个是患者模型
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)
有什么想法吗?
答案 0 :(得分: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