ruby-on-rails - rails ActiveRecord 对特定 Controller 和 Action 的验证

标签 ruby-on-rails validation activerecord

是否可以在给定的 Controller 和操作上运行 ActiveRecord 验证。

例如我有 user_controllersignup_controller
我只需要在 signup_controller#create 操作上运行密码验证

最佳答案

您可以使用 if 运行验证有条件的:

validates :email, presence: true, if: :validate_email?

现在你需要定义这个实例方法(在你的模型中):
def validate_email?
  validate_email == 'true' || validate_email == true
end

validate_email属性可能是模型中的虚拟属性:
attr_accessor :validate_email

现在,您可以根据该虚拟属性执行电子邮件验证。例如,在 signup_controller#create您可以执行以下操作:
def create
  ...

  @user.validate_email = true
  @user.save

  ...
end

关于ruby-on-rails - rails ActiveRecord 对特定 Controller 和 Action 的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914257/

相关文章:

ruby-on-rails - rails : How to limit number of items in has_many association (from Parent)

ruby-on-rails - 运行软件包安装无法尝试从rubygems.org/quick/Marshal远程获取

javascript - 如何验证 HTML 表单中至少 3 个单词?

ruby-on-rails - Active Record 查询按模型关联排序 : Rails 3 & SQLite

ruby-on-rails - after_create 回调似乎无法正常工作

ruby-on-rails - Active Storage 永久镜像 URL

ruby-on-rails - Authlogic 管理子站点

php - 使用 Symfony Validator 验证 Doctrine 实体

validation - 西类牙语ID:grails中的NIF,NIE,CIF验证程序

mysql - 是否有查询根据 mysql 中的 where 条件从集合中删除重复项?