如果属性 Y 更改,则更改属性 X?
Change Attribute X if Attribute Y changes?
我熟悉脏对象并在预保存回调中使用 attribute_changed?
。当属性 Y 更改时,我想将一个属性更改回默认值。所以在伪代码中:
def pre_save
self.crawl_mode = false if self.url_changed?
end
但是,更改 url 并尝试保存失败。它仍然通过了所有验证,所以我不确定从这里去哪里。
self.crawl_mode = false
将导致方法 return false
将中止保存。
试试这个:
def pre_save
self.crawl_mode = false if self.url_changed?
true
end
Ruby 方法隐式 return 最后赋值的值(更准确地说,最后一个表达式)
我熟悉脏对象并在预保存回调中使用 attribute_changed?
。当属性 Y 更改时,我想将一个属性更改回默认值。所以在伪代码中:
def pre_save
self.crawl_mode = false if self.url_changed?
end
但是,更改 url 并尝试保存失败。它仍然通过了所有验证,所以我不确定从这里去哪里。
self.crawl_mode = false
将导致方法 return false
将中止保存。
试试这个:
def pre_save
self.crawl_mode = false if self.url_changed?
true
end
Ruby 方法隐式 return 最后赋值的值(更准确地说,最后一个表达式)