Пригласить пользователя без электронной почты + rails + devise invitable

Я хочу иметь функцию, с помощью которой я могу пригласить любого пользователя, используя только его номер телефона. У меня нет адреса электронной почты. Когда пользователя приглашают, на указанный номер отправляется SMS, и в зависимости от содержания ответного (скажем, «Y» или «N») SMS от пользователя его учетная запись подтверждается/отклоняется. Мы планируем предоставить ссылку в смс, где пользователь может щелкнуть и ввести необходимые данные (электронная почта, имя и т. д.).

Loading development environment (Rails 5.0.2)
2.3.0 :001 > u = User.invite!(phone_number: '1234567890')
=> #<User id: nil, email: nil, first_name: nil, last_name: nil, phone_number: "1234567890", created_at: nil, updated_at: nil, invitation_token: nil, invitation_created_at: nil, invitation_sent_at: nil, invitation_accepted_at: nil, invitation_limit: nil, invited_by_type: nil, invited_by_id: nil, invitations_count: 0>
2.3.0 :002 > u.errors
=> #<ActiveModel::Errors:0x007fc91fcd4c00 @base=#<User id: nil, email: nil, first_name: nil, last_name: nil, phone_number: "1234567890", created_at: nil, updated_at: nil, invitation_token: nil, invitation_created_at: nil, invitation_sent_at: nil, invitation_accepted_at: nil, invitation_limit: nil, invited_by_type: nil, invited_by_id: nil, invitations_count: 0>, @messages={:email=>["can't be blank"]}, @details={:email=>[{:error=>:blank}]}>

person prasad.surase    schedule 30.03.2017    source источник


Ответы (1)


У меня такая же проблема, и я установил для нее пример электронной почты и удалю ее позже...

u = User.invite!(phone_number: '1234567890', email: '[email protected]', skip_invitation: true)
u.update(email: '')

Добавьте это в user.rb:

def email_required?
  false
end
def email_changed?
  false
end
person Xuân Khoái Nguyễn    schedule 16.06.2017