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

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

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

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

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

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

Oh, duh. I didn't read what you were asking. Please ignore my answer. Ariel has the right answer here.

Walter

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…

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

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)