我創建了一個項目,允許用戶通過添加電子郵件來邀請其他用戶。當他們添加他們的電子郵件時創建一個用戶。不過,我在跳過驗證時遇到了一些問題。密碼的有效記錄條件驗證
關於邀請,我想跳過密碼驗證。因爲只有電子郵件是必需的。我正在使用BCrypt和has_secure_password。有人想知道如何跳過這個嗎?
我invitations_controller:
def create
@user = User.new(invite_params)
if @user.save
@user.create_invitation_digest
@user.send_invitation_email
flash[:success] = 'User invited'
redirect_to new_invitation_path
else
flash.now[:danger] = 'Unable to invite'
render 'new'
end
end
和我的用戶模型:
validates :name, presence: true, length: { maximum: 50 }, unless: :invited?
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }, allow_nil: true
belongs_to :company
def invited?
controller_name = 'invitations'
end
嘗試'驗證:密碼,存在:真,長度:{最小:6},allow_nil:真,除非::邀請' – Pavan
確實不起作用,因爲has_secure_password在創建時對驗證密碼進行了預定義的驗證。 –
嗯嘗試這個'has_secure_password:驗證=> false'以及上述。 – Pavan