邀请用户没有电子邮件+ rails +设计可邀请的

时间:2017-03-30 08:10:47

标签: ruby-on-rails-5 devise-invitable

我希望有一个功能,我可以邀请任何用户只使用他们的phone_number。我没有电子邮件地址。当用户被邀请时,SMS被发送到指定的号码,并且取决于来自用户的回复的内容(例如,“Y”或“N”),他们的帐户被确认/拒绝。我们计划在短信中提供一个链接,用户可以点击该链接并输入所需的详细信息(电子邮件,姓名等)。

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}]}>

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我为它设置了示例电子邮件,稍后将其删除......

u = User.invite!(phone_number: '1234567890', email: 'example@abc.com', skip_invitation: true)
u.update(email: '')

将此添加到user.rb:

def email_required?
  false
end
def email_changed?
  false
end