attr_accessible :attr1 , :attr2 validates_presence_of :attr2, if: :attr1.blank?
以上写法网页提交的话就报一个 undefined method `validate' for false:FalseClass 错误。
请问是什么地方写错了...这里到底应该怎么写呢...
谢谢
系统看看 Validate 怎么写吧 http://guides.rubyonrails.org/active_record_validations_callbacks.html
#1 楼 @Magic 已经解决了,谢谢
#2 楼 @blacktulip 怎么解决的你都不贴出来!
#3 楼 @simlegate 就按着 1 楼贴的文档写的啊,没啥特别需要贴的
validates_presence_of :attr2, if: :attr1_blank? ...... private def attr1_blank? self.attr1.blank? end
#4 楼 @blacktulip 可以再简洁点,一行搞掂
validates_presence_of :attr2, if: lambda { |model| model.attr1.blank? }
#5 楼 @HungYuHei 多谢啦,对这样的 callback 还很生疏,这里这样用 lambda 的话就是把这个 instance 传进块里面操作么?
#6 楼 @blacktulip 对啊
#7 楼 @HungYuHei 前面好像没有 self 之类的东西..还是省略了?
#8 楼 @blacktulip 那个例子了,就是将 self 作为参数赋值给 model,所以在 lambda 中,可以将 model 就是 self
#2 楼 @blacktulip 没看懂为什么会出现你的问题?