我正在尝试使用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 %>);
警报始终是警报零。
请告知。
答案 0 :(得分:1)
如果你正在使用Rails 4,那么新的包含强参数可能会阻止你的模型被创建。
您的控制器中是否有类似以下内容?
params.require(:front_contact).permit!
我在初次切换到Rails 4时遇到了同样的问题,并且因为不允许特定参数不会抛出错误消息而感到困惑;该对象不会被创建。
如果您有一个RailsCasts帐户,那么有一个关于如何处理强params here的非常精彩的视频。