在我的情况下,它是pre_member而不是user。即使验证失败(pre_member不保存),它仍然在if块内,不会进入else块。
验证
class PreClubList < ActiveRecord::Base
validates_presence_of :email, :enterprise, :member
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
validates :email, format: { with: VALID_EMAIL_REGEX }
validates :enterprise, length: { minimum: 3 }
end
因此,如果用户为企业输入一个字符,它仍然遵循if块中的内容但不保存它。
动作
class PreClubListsController < ApplicationController
def create
@member = PreClubList.new(pre_club_list_params)
respond_to do |format|
if @member.save
format.html
format.js { render "create" }
else
format.html
format.js {"alert('form had following errors : #{@member.errors.full_messages});"}
end
end
end
private
def pre_club_list_params
params.require(:pre_club_list).permit(:email, :enterprise, :member)
end
end
我正在使用rails 4.1,simple_form