У меня есть объект, называемый reportapproval. Я запускаю объект в форме и до того, как он будет сохранен, я хочу, чтобы он прошел через контроллер заряда. Если заряд не пройдет, то он не сохранит объект, но если он это сделает, он сохранит.вызов объекта в другом контроллере перед сохранением рельсов 4
Я пытаюсь передать несохраненный объект контроллеру заряда. Как я могу это сделать. Вот 2 действия в их соответствующем контроллере.
reportapproval_controller.rb
def create
@reportapproval = current_manager.reportapprovals.new(authorization_params)
if @reportapproval.valid?
if @reportapproval.manager_paying_report == true
flash[:notice] = "Please make payment before proceeding"
redirect_to new_managers_charge_path(id: @reportapproval_id)
charge_error = nil
end
end
end
charge_controller.rb
def create
# Amount in cents
@reportapproval = Reportapproval.new(session[:reportapproval_id])
@manager = current_manager
@amount = @reportapproval.manager_request_report_type
customer = Stripe::Customer.create(
:email => @manager.email,
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
...
)
@reportapproval.report_paid = true
@reportapproval.save!
redirect_to managers_dashboard_path, :notice => "You have successfully ..."
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to managers_charges_path
end
end
Как я могу передать этот объект заряда, а затем обратно в reportapproval перед сохранением в БД. Я использую mongoid btw. Спасибо заранее.
Итак, по флагом вы имеете в виду болелеан или что-то вроде отметки времени даты, и как насчет того, если заряд никогда не пройдет, как отменить одобрение отчета? – SupremeA
Boolean, да. Лично я бы не отменял или не удалял их, я бы просто удостоверился, что методы контроллера не имеют доступа к не утвержденным. –
Спасибо, последнее. Является ли логическое лучше, чем петь государственную машину или наоборот. Один путь лучше, чем другой? – SupremeA