Salve a tutto il forum,
in parole povere stavolta ho il seguente problema credo che a molti sarà
capitato questa situazione ma al momento non trovo una soluzione
semplice a parte quella di studiarmi tutto il capitolo 2. "Routing" del
libro di "THE RAILS 3 WAY"
ma chissa forse a quest'ora qualcuno può rispondermi e se così non e'
almeno avrà' finito il capitolo 2.
**** IL PROBLEMA ****
in pratica ho 2 controller
/ordine
miapp/ordine
/acquisto
miapp/acquisto
il fatto e' che una volta completato l'ordine l'utente si trova nel
percorso
miapp/ordine/index
e nella vista 'index' ho il codice
<%= form_tag :action => 'express' do %>
<input type="image" src="<%=
image_path('https://www.paypal.com/en_US/i/btn/btn_xpressCheck...)
%>">
<% end %>
quindi lato utente nel momento che schiaccio nel bottone nella 'image'
viene mostrato sul browser il seguente messaggio:
No route matches {:action=>"acquisto/express", :controller=>"ordine"}
'express' e' un action del 'controller' denominato 'acquisto' che
reindirizza alla pagina di pagamento di PayPal quindi penso che sia per
questo un problema di 'routing'
cio' detto ho pensato che devo sistemare qualcosa nella route al momento
ho questo:
/////////
root :to => 'ordine#index'
%w(express express_complete complete).each do |action|
match "acquisto/#{action}" => "acquisto##{action}"
end
////////
nel frattempo che qualcuno risponde vado a leggere il capitolo 2
grazie comunque,
C
on 2012-07-11 22:33
on 2012-07-11 22:48
Io consiglierei di dare un nome sensato alle route ed evitare il metaprogramming delle stesse, non mi pare molto leggibile il risultato
on 2012-07-11 22:52
Cluter Vipic wrote in post #1068303: > in pratica ho 2 controller > > /ordine > > miapp/ordine > > /acquisto > > miapp/acquisto > [...] > <%= form_tag :action => 'express' do %> Conviene non perdere mai di vista il codice che si vuole generare, che è <form action="/acquisto/express"> Se stai usando delle risorse, /acquisto/express sarà definito in routes.rb come (vado a memoria) resource :acquisto do # se l'inflection dei nomi italiani è quella... member do # o collection do ? te lo lascio da verificare post :express end end Quindi <%= form_tag express_acquisto_path do %> è il codice che cerchi. Se non usi delle risorse conviene definire i nomi dei path in routes.rb Ad esempio match 'acquisto/express', :controller => :acquisto, :action => :express, :as => :express_acquisto_path renderà possibile il form_tag di cui sopra. Paolo
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.