ruby-on-rails – 为用户模型添加电话号码
发布时间:2020-12-17 02:24:35 所属栏目:百科 来源:网络整理
导读:如果这个问题过于笼统,请道歉.我对Rails和一般的开发都比较陌生.我正在创建一个使用Twilio进行SMS验证的Rails应用程序.用户使用他们的姓名和电话号码注册应用程序.然后通过SMS发送的引脚验证该电话号码.我很难确定使用phone_number模型是否更容易和/或更好,
如果这个问题过于笼统,请道歉.我对Rails和一般的开发都比较陌生.我正在创建一个使用Twilio进行SMS验证的Rails应用程序.用户使用他们的姓名和电话号码注册应用程序.然后通过SMS发送的引脚验证该电话号码.我很难确定使用phone_number模型是否更容易和/或更好,然后使用belongs_to:和has_one创建用户和phone_numbers之间的关联:或者如果我可以将电话号码作为用户的一部分模型.
我正在使用Rails 4.2.1 这是我的用户模型: class User < ActiveRecord::Base has_secure_password validates_presence_of :name validates_presence_of :phone_number validates_uniqueness_of :phone_number end 用户控制器: class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) if @user.save session[:user_id] = @user.id redirect_to root_url,notice: "Saved" else render 'new' end end private def user_params params.require(:user).permit(:name,:phone_number,:password,:password_confirmation) end end 这是我一直试图遵循的Twilio教程: http://twilioinc.wpengine.com/2015/06/sms-phone-verification-in-rails-4-using-ajax-and-twilio.html 我是否想过这个?用户真的只是一个名字的phone_number吗? 如果我最终需要创建一个电话号码模型/控制器,我将如何修改我的路线?这将如何改变我的注册页面,现在包括: <div class="field"> <%= f.label :phone_number %><br /> <%= f.text_field :phone_number %> </div> 解决方法
您可以将phone_number模型作为用户的一部分,并使用[:user] [:phone_number]参数来创建它.这取决于您和您正在尝试构建的用户体验.
用户是否需要在注册时验证他/她的电话号码?创建帐户后用户是否必须这样做? 在第一种情况下,您可以将电话号码设为属于用户的单独型号.您将Twilio集成的所有方法放在phone_number模型中,并在users_controller中使用它们.您可以通过避免AJAX并将其作为用户注册的下一步来简化验证步骤. 这是它的样子: 在你的模型中: class PhoneNumber < ActiveRecord::Base belongs_to :user ... end 在您的用户控制器中: def create @user = User.new(permitted_params) @phone_number = PhoneNumber.find_or_create_by(user_id: @user.id,phone_number: params[:user][:phone_number]) @phone_number.generate_pin @phone_number.send_pin ... end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |