#link_to is throwing error - ArgumentError: arguments passed to url_for can't be handled.

Hi,

I have the below resource table Comment controller :

[arup@app]$ rake routes | grep comments
      comments GET /comments(.:format) comments#index
                           POST /comments(.:format) comments#create
   new_comment GET /comments/new(.:format) comments#new
  edit_comment GET /comments/:id/edit(.:format) comments#edit
       comment GET /comments/:id(.:format) comments#show
                           PATCH /comments/:id(.:format) comments#update
                           PUT /comments/:id(.:format) comments#update
                           DELETE /comments/:id(.:format) comments#destroy

Now, I am trying to figure out what I read from the guide - http://guides.rubyonrails.org/v4.1.8/routing.html#creating-paths-and-urls-from-objects

If I call link_to with helper like you are from rails console (running pry-rails), I get the same error. But when I put it into a view, it works…

Thanks. Then I'll create an issue ticket for this.

Hi,

I have the below resource table Comment controller :

[arup@app]$ rake routes | grep comments

  comments    GET    /comments(.:format)          comments#index

                       POST   /comments(.:format)          comments#create

new_comment GET /comments/new(.:format) comments#new

edit_comment GET /comments/:id/edit(.:format) comments#edit

   comment     GET    /comments/:id(.:format)      comments#show

                       PATCH  /comments/:id(.:format)      comments#update

                       PUT    /comments/:id(.:format)      comments#update

                       DELETE /comments/:id(.:format)      comments#destroy

Now, I am trying to figure out what I read from the guide - http://guides.rubyonrails.org/v4.1.8/routing.html#creating-paths-and-urls-from-objects

=======

If you wanted to link to just a magazine:…

For other actions, you just need to insert the action name as the first element of the array:…

=======

I tried -

helper.link_to(“Show comment”, [Comment.first], method: :get)

helper.link_to(“Show comment”, Comment.first, method: :get)

helper.link_to(“Show comment”, [:show, Comment.first])

helper.link_to(“Show comment”, Comment.first, method: :get)

Always I’m getting the error as : ArgumentError: arguments passed to url_for can’t be handled. Please require routes or provide your own implementation

Any idea what am I doing wrong ? I am not getting the result as guide promised. :slight_smile:

Why do you prefix link_to with 'helper ? To point to a comments#show, just use
link_to 'Show comment", Comment.first

``

or
link_to 'Show comment", comment

``

if you have a comment instance variable defined in ‘show’ action of the CommentsController.

Your Comment is a RESTful resource and have all the standard RESTful methods defined by default according to your routes. So, no need to precise the GET in your link_to helper in the view.

My point was in rails console, not inside the erb template.