0

我是新来的铁路。我有一个电子邮件输入表单,我正在添加验证。这是我的控制器:

 @email=params[:email]
 @BetaSignup = BetaSignup.create!(:email => @email)

我的模型:

class BetaSignup < ActiveRecord::Base
  validates :email, :presence => true, :email => true
end

然后我想根据@BetaSignup 的结果告诉用户它是否是电子邮件。

在我看来,这样做是否正确?

if (<%- @BetaSignup %>) {

然而这不起作用,并且视图文件甚至永远不会被访问,因为上面一行上方的数据(清除输入字段)没有发生(或者可能因为错误而没有发生)

想法??

4

1 回答 1

1

您正在使用create!,因此如果记录无效,代码将引发异常。

您可以继续使用它并抢救异常,或者您可以将其更改为不引发异常并随后检查对象:

@BetaSignup = BetaSignup.create(:email => @email)
if (@BetaSignup)
  //validations passed
else
  //validations failed
  @BetaSignup.errors // <-- validation errors are here
end
于 2012-07-03T08:33:32.993 回答