Запретить только разработку электронного письма с подтверждением при создании пользователя с помощью вложенных атрибутов
При желании я создаю пользователя с вложенными атрибутами. Я просто хочу пропустить подтверждение по электронной почте. Но
class ShipperOrder < ActiveRecord::Base
belongs_to :user
accepts_nested_attributes_for :user
end
class User < ActiveRecord::Base
has_many :shipper_orders
end
контроллер
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
Теперь я создаю заказ, и если пользователь хочет назначить этот заказ пользователю, которого нет в базе данных. Затем я создаю этого пользователя с помощью nested_attributes. Все отлично работает я просто хочу отключить подтверждение по электронной почте для такого типа пользователей.
1 ответ
Решение
Вы можете добавить 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
В общем, это должно работать, но вы можете изменить его немного
А потом в контроллере добавить в user_attributes
ключ :skip_user_confirmation
, которые будут true or false