Rails验证... multiple:on options?

sch*_*udu 10 validation ruby-on-rails

是否可以:onvalidates验证选项提供 多个条目?

类似于以下内容:

class Library < ActiveRecord::Base

  validates :presence => true, :on => [:create, :update, :some_other_action]

end
Run Code Online (Sandbox Code Playgroud)

基本上我想在控制器中调用多个动作时运行一个特定的验证.例如,我想验证有关create操作,update操作以及可能的其他操作的一些用户信息.

虽然我不希望验证在所有方法上运行.

此外,如果有一个更简单的方法,这也将是伟大的!

提前致谢!

Mic*_*ant 6

是的,用于创建和更新!

:on - 指定此验证何时处于活动状态.默认情况下在所有验证上下文中运行(nil),其他选项包括:create:update

但是将这些值视为数据库数据创建或更新语句,而不是rails控制器操作.他们可能对数据和数据库做了类似的事情,但它们是不同的.
例如,您可能有另一个rails方法也可以更新数据库,可能会更新不同的字段,但是上面的':update'仍将考虑该方法,即使它不是来自名为'update'的rails操作.