gpt4 book ai didi

ruby-on-rails - 在没有模型的情况下在 Rails 中进行验证

转载 作者:行者123 更新时间:2023-12-04 11:44:47 27 4
gpt4 key购买 nike

我有一个允许用户向电子邮件发送消息的表单,我想为其添加验证。我没有这个模型,只有一个 Controller 。我应该如何在 Rails 中做到这一点?

我正在考虑在 Controller 中进行验证,并使用 flash 向用户显示错误目的。有没有更好的方法来做到这一点?

最佳答案

最好的方法是将您的伪模型包装在一个类中,并在那里添加验证。 Rails 方式声明您不应该将模型行为放在 Controller 上,唯一的验证应该是与请求本身相关的验证(身份验证、授权等)

在 Rails 2.3+ 中,你可以包含 ActiveRecord::Validations ,有一个小缺点,即您必须定义 ActiveRecord 层期望的一些方法。见 this post更深入的解释。以下代码改编自该帖子:

require 'active_record/validations'

class Email

attr_accessor :name, :email
attr_accessor :errors

def initialize(*args)
# Create an Errors object, which is required by validations and to use some view methods.
@errors = ActiveRecord::Errors.new(self)
end

# Required method stubs
def save
end

def save!
end

def new_record?
false
end

def update_attribute
end

# Mix in that validation goodness!
include ActiveRecord::Validations

# Validations! =)
validates_presence_of :name
validates_format_of :email, :with => SOME_EMAIL_REGEXP
end

在 Rails3 中,你有这些 sexy validations由你处置 :)

关于ruby-on-rails - 在没有模型的情况下在 Rails 中进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com