如果user.save没有在respond_to中工作|格式化|验证失败时

时间:2014-06-17 13:50:34

标签: ruby-on-rails ajax ruby-on-rails-4 simple-form

在我的情况下,它是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

0 个答案:

没有答案