1

我正在尝试使用 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

前台联系人:

 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 %>);

警报始终警报为零。

请指教。

4

1 回答 1

1

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

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

params.require(:front_contact).permit!

最初切换到 Rails 4 时,我遇到了与您相同的问题,并且感到困惑,因为不允许特定参数不会引发错误消息;该对象只是没有被创建。

如果你有 RailsCasts 帐户,这里有一个关于如何处理强参数的非常棒的视频。

于 2013-07-22T12:27:51.737 回答