Forum: Ruby on Rails No route matches [POST]

05319796ff60590c3c9c7232faf9eb20?d=identicon&s=25 Rita Ferreira (Guest)
on 2013-08-23 19:28
(Received via mailing list)
Hi,
I'm new in RoR, I need some help in the following situation:

I have 2 controllers, clinica and consultas.
Clinica is my default controller.

On /views/clinica, I have the index.html.erb default of my aplication,
and
I have there the command:

<%= button_to "Read More", new_consulta_path, :class=>"icon
icon-arrow-right button", %>

on the routes.rb I have:

Clinica::Application.routes.draw do

  resources :clinica

  resources :consultas


on /views/consultas/new.html.erb I have a form, if I write the URL
"http://localhost:3000/consultas/new" I get the form without problems.

The problem here is that when I click on the button "Read More" (on the
index default of my application on Clinica) I get the error "No route
matches [POST] "/consultas/new"". I can't understand what is the mistake
I'm doing.

Does anyone know what is happening?
Any help is welcome!
Thank you,
Rita Ferreira
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2013-08-23 19:49
(Received via mailing list)
On Friday, August 23, 2013 12:25:29 PM UTC+1, Rita Ferreira wrote:
on the routes.rb I have:
>
> The problem here is that when I click on the button "Read More" (on the
> index default of my application on Clinica) I get the error "No route
> matches [POST] "/consultas/new"". I can't understand what is the mistake
> I'm doing.
>

button_to does a post request by default. if you add a :method => :get
option to it then it should work

Fred
Aa082c8b00a50928e5860dcd70bf2368?d=identicon&s=25 tamouse m. (tamouse_m)
on 2013-08-23 20:19
(Received via mailing list)
On Aug 23, 2013, at 6:25 AM, Rita Ferreira <ritaferreira83@gmail.com>
wrote:

> Hi,
> I'm new in RoR, I need some help in the following situation:

Hi, Rita, welcome!

>
> I have 2 controllers, clinica and consultas.
> Clinica is my default controller.
>
> On /views/clinica, I have the index.html.erb default of my aplication, and I
have there the command:
>
> <%= button_to "Read More", new_consulta_path, :class=>"icon icon-arrow-right
button", %>

The issue here is that button_to automatically generates a form with a
submit button. The default method for forms in "POST" (which is why
you're seeing that in the routing error below.

Take a look at the page source for this view to see what is being
generated.

The docs for button_to are at:
http://api.rubyonrails.org/classes/ActionView/Help...

You can change the method used by passing in the :method => :get option
on that call. The other thing you might look at is using link_to instead
of button_to, and making it look like a button with css classes. (It
looks like you're using twitter bootstrap, which does this pretty
easily.)
05319796ff60590c3c9c7232faf9eb20?d=identicon&s=25 Rita Ferreira (Guest)
on 2013-08-23 20:51
(Received via mailing list)
Hi Fred,
Thanks a lot, it worked :)


Sexta-feira, 23 de Agosto de 2013 18:48:28 UTC+1, Frederick Cheung
escreveu:
05319796ff60590c3c9c7232faf9eb20?d=identicon&s=25 Rita Ferreira (Guest)
on 2013-08-23 20:52
(Received via mailing list)
Hi tamouse,
I tried it with button_to with the 'tag' :method => :get and I got no
error!
Then I decided to use link_to and I got success too!
Thank you veryyyy much :)

Sexta-feira, 23 de Agosto de 2013 19:17:40 UTC+1, tamouse escreveu:
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.