Ruby on Rails Sunday, June 12, 2016

Colin Law wrote in post #1183946:
> On 12 June 2016 at 08:55, David Alejandro <lists@ruby-forum.com> wrote:
>>>> want this. I only want the attribute updated if the link is clicked.
>> follows the URL generated by the method.
> Well that is what you need to fix. If you need to do something to the
> database then you need to call an action in your application that does
> whatever it is you want to do. If necessary you can then redirect to
> your external url.
>
> Are you a beginner with Rails? If so then I suggest that before going
> further you work right through a good tutorial such as
> railstutorial.org (which is free to use online), that will show you
> the basics of Rails.
>
> Colin

Managed to solve this a while ago :-)

I created an action for the link which generates and follows the link,
then when it gets back from it (PayPal), it updates the database.

post 'orders/:id/pay', to: 'orders#start_payment_process', as:
'start_payment_process'

<%= link_to "Pagar en PayPal", start_payment_process_path, class:
"btn btn-success", method: :post %>

def start_payment_process
@order = current_order
@order.update_attribute(:payment_in_process, true)
redirect_to @order.paypal_url(edit_order_url,
payment_notification_url)
end

def edit
# ... Some code
if @order.payment_notifications.any? && @order.payment_in_process
@order.update_attribute(:payment_in_process, false)
end
end

Thanks!

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/891aa23f1ccf65931444f00b3478e7b4%40ruby-forum.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment