我有一个多态关联-- "address“(属于"addressable")。
在其他模型中,它服务于“商店”模型。
我正在尝试添加一个validates_presence_of验证,当且仅当地址具有addressable_type“商店”,并且相应的“商店”对象具有"shop_type =‘商业’“时
问题是,我似乎不能从address模型访问我的父“商店”对象,这意味着我不能接收shop_type &因此不能设置验证。对如何做到这一点有什么建议吗?
下面是我想要做的事情的一个例子。我不确定这是否是正确的解决方案,但我怀疑我所需要的就是找出可能的"GET_SHOP_TYPE_HERE“call...assuming。干杯
# app/models/address.rb
with_options :if => lambda { |address| address.addressable_type == 'Shop')} do |model|
model.validates_presence_of :street_address, :suburb, :post_code, :address_state, :latitude, :longitude unless is_commercial_shop?
end
def is_commercial_shop?
<GET_SHOP_TYPE_HERE> == 'commercial'
end发布于 2011-07-06 17:13:17
我可能库存不足,但我会试着这样做:
validate_presence_of :your_attribute, :if => has_condition?
def has_condition?
# whatever code that tells you to validate or not
end希望这能有所帮助!
https://stackoverflow.com/questions/6592088
复制相似问题