如何在条件验证中使用action_name

时间:2014-07-14 22:42:46

标签: ruby-on-rails ruby-on-rails-4

我不确定这是不是最好的方法。但我正在尝试根据用户模型编辑帐户或创建帐户来为我的用户模型添加验证。

显然,如果我没有定义条件验证,你就永远无法登录,因为存在不存在:sign_up中的city但是在account_update上。

我拥有的是:

validates :about, presence:true, if: :edit_account

def edit_account
 action_name == 'edit'
end

我尝试了其他几个但我得到了:

undefined local variable or method `action_name'

有没有更好的解决方案,如果不是我怎么做这个?

2 个答案:

答案 0 :(得分:2)

试试这个

validates :about, presence: true, :on => :update

more info in Rails documentation

答案 1 :(得分:0)

您可以在:: update上添加option,以便仅在更新记录时运行验证。

validates :about, presence: true, on: :update