Вы также можете удалить спецификацию модуля :validatable
для устройства в вашей пользовательской модели и добавить validates_uniqueness_of
с :scope
, установленным на :is_merchant
.Это позволяет вам использовать методы проверки ActiveRecord вместо методов Devise.
Использование :scope
в validates_uniqueness_of
позволяет проверять уникальность нескольких столбцов.
user.rb:
class User < ActiveRecord::Base
# ...
validates_uniqueness_of :email, :scope => :is_merchant
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable #, :validatable <- removed
# ...
end
В вашемПри регистрации нового пользователя укажите значение is_merchant
в форме регистрации.
new.html.erb
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%=f.hidden_field :is_merchant, :value => 1 %> # used hidden for my implementation
# ... other inputs
<% end %>