help...how do i get the "projects_path" from controller?

22 views
Skip to first unread message

tom

unread,
May 21, 2019, 2:46:50 PM5/21/19
to Ruby on Rails: Talk
hi, i have a generic _index partial, but i am struggling with constrcuting the 

(link_to "show", ......(rec.id))


how can i get that filled in? i have tried via url_for (controller & action), but it always says: arguments passed to url_for can't be handled

please help

thx

Walter Lee Davis

unread,
May 21, 2019, 2:49:44 PM5/21/19
to rubyonra...@googlegroups.com
The projects path isn't coming from the controller, it's coming from the routes file. Do you have any references in your routes.rb file that mention projects?

Walter
> --
> 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-ta...@googlegroups.com.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CADQqhMcwBzUv9EYzHCEoN%2BZXDb4pEWt%2BU%2BKpbtO3Es375-xpug%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

tom

unread,
May 21, 2019, 2:59:45 PM5/21/19
to Ruby on Rails: Talk
yes i do:
  scope :pm do
    get '/', :to => 'projects#dashboard',   :as=>'pm_dashboard'
    resources :project_resource_groups #, :path=>'tasks'
    resources :project_programs
    resources :projects
end


but again, the _index view partial is used in a lot index actions, so i dont know how to "pick" the right 'path' while creating the html table...


thx


Walter Lee Davis

unread,
May 21, 2019, 3:03:34 PM5/21/19
to rubyonra...@googlegroups.com
You could use

link_to 'Index', url_for(controller: controller_name, action: :index)

instead. That would be agnostic of whichever controller was rendering that _index.html.erb partial.

Walter
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CADQqhMedP5BfQtZgsrAGcNPjhVTbfc28OZXG2yEtQgqNS1dXVQ%40mail.gmail.com.

Ariel Juodziukynas

unread,
May 21, 2019, 3:07:52 PM5/21/19
to rubyonra...@googlegroups.com
You can pass the object to the link_to if you want to use the show url:

link_to 'Show', record

Rails will infere the show action with the proper controller and id from the object's class

Walter Lee Davis

unread,
May 21, 2019, 3:11:18 PM5/21/19
to rubyonra...@googlegroups.com
Oh, duh. I didn't read what you were asking. Please ignore my answer. Ariel has the right answer here.

Walter
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAPS3bcBVskd36z25XkH4s9Bk_uZL3F8%2B4UrwAoC6qzvQMKmMpw%40mail.gmail.com.

tom

unread,
May 21, 2019, 3:12:02 PM5/21/19
to Ruby on Rails: Talk
thanks to all, BUT:

 <%= link_to "X", project_path(rec.id) %>
--> harcoding works

 <%= link_to "X", url_for([rec, rec.id ]) %>
--> arguments passed to url_for can't be handled. Please require routes or provide your own implementation

  <%= link_to "X2", :url =>   url_for(action: 'show', controller: "pm/projects", :id=>rec.id )  %>
--> arguments passed to url_for can't be handled. Please require routes or provide your own implementation

<%= link_to "X3", url_for(action: 'show', controller: "pm/projects", :id=>rec.id ) %> 
--> arguments passed to url_for can't be handled. Please require routes or provide your own implementation

i am loosing it....

tom

unread,
May 21, 2019, 3:15:02 PM5/21/19
to Ruby on Rails: Talk
Started GET "/pm/projects" for 10.0.1.10 at 2019-05-21 15:12:09 -0400
Cannot render console from 10.0.1.10! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by ProjectsController#index as HTML
  User Load (0.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 1]]
"ProjectsController::index ================================================="


browser:
<%= link_to "show1", rec %>
--> arguments passed to url_for can't be handled. Please require routes or provide your own implementation

Ariel Juodziukynas

unread,
May 21, 2019, 5:14:56 PM5/21/19
to rubyonra...@googlegroups.com
where are you calling that link_to helper? on a view? on a helper? sounds like you are not on the right context to properly use url_for helper (that's why it complains that you have to require routes or provide your implementation for it)

Reply all
Reply to author
Forward
0 new messages