Nit*_*ain 0 ruby ruby-on-rails devise devise-confirmable
我可以选择使用嵌套属性创建用户。我只想跳过确认电子邮件。但
class ShipperOrder < ActiveRecord::Base
belongs_to :user
accepts_nested_attributes_for :user
end
class User < ActiveRecord::Base
has_many :shipper_orders
end
Run Code Online (Sandbox Code Playgroud)
控制器
class ShipperOrdersController < ApplicationController
def create
@shipper_order = ShipperOrder.new(order_params)
if @shipper_order.save
flash[:notice] = "Shipper order created"
else
flash.now[:alert] = @shipper_order.errors.full_messages.join(", ")
render :error
end
end
private
def order_params
params.require(:shipper_order).permit({user_attributes: [:first_name, :email,
:last_name,:mobile_phone, :password, :terms_of_service, :password_reset_required
]}, :description)
end
end
Run Code Online (Sandbox Code Playgroud)
现在我正在创建一个订单,如果用户想将此订单分配给数据库中不存在的用户。然后我在nested_attributes 的帮助下创建该用户。一切正常。我只想禁用此类用户的确认电子邮件。
您可以添加 attr_accessor 之类的
class User < SomeClass
attr_accessor :skip_user_confirmation
before_save :skip_confirm
private
def skip_confirm
self.skip_confirmation! if self.skip_user_confirmation
end
end
Run Code Online (Sandbox Code Playgroud)
一般来说它应该可以工作,但你可能想稍微改变一下
然后在控制器中添加到user_attributeskey :skip_user_confirmation,这将是true or false
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |