Rails 4活动模型验证

时间:2013-07-21 21:52:39

标签: ruby-on-rails

我正在尝试使用Active Model在我的网站上创建一个“联系我”表单。

我遇到的问题是永远不会返回错误消息。

我正在使用远程表单。

路线:

 resource :front_contacts, only: :create, controller: :front_contact

控制器:

 class FrontContactController < ApplicationController
   def create
     contact = FrontContact.new(params[:front_contact])
     @errors = contact.errors.size
   end
 end

front_contact:

 class FrontContact
   include ActiveModel::Model

   attr_accessor :name, :email, :message

   validates_presence_of :name, :message
   validates_format_of :email, with: /[a-zA-Z0-9._%-]+@(?:[a-zA-Z0-9-]+\.)+(com|net|org|info|biz|me|edu|gov)/i
  end

js.erb:

  alert(<%= @errors %>);

警报始终是警报零。

请告知。

1 个答案:

答案 0 :(得分:1)

如果你正在使用Rails 4,那么新的包含强参数可能会阻止你的模型被创建。

您的控制器中是否有类似以下内容?

params.require(:front_contact).permit!

我在初次切换到Rails 4时遇到了同样的问题,并且因为不允许特定参数不会抛出错误消息而感到困惑;该对象不会被创建。

如果您有一个RailsCasts帐户,那么有一个关于如何处理强params here的非常精彩的视频。