How to DRY REST admin path in URLs?

Hi everyone...

For almost all of my objects I put a series of classic REST admin links in views. For example, for a 'user', I have

<%= link_to "Show", user_path(user) %> <%= link_to "Edit", edit_user_path(user) %> <%= link_to "Destroy", user_path(user), :confirm => "Are you sure", :method => :delete %>

I am tired of writing those links down over and over and look for a way to DRY it a little bit. I am thinking about a helper method allowing me to write a simple

<%= admin_links(user) %>

but I don't know how to dynamically write the user_path, edit_user_path and so on?

An idea anyone?

In advance, thank you very much!

Yannis

Hi Yannis,

You could define a helper method as follows:

def admin_links(user)   "<%= link_to "Show", user_path(#{user}) %>   <%= link_to "Edit", edit_user_path(#{user}) %>   <%= link_to "Destroy", user_path(#{user}), :confirm => "Are you sure", :method => :delete %>" end

In your controller, you would probably define the @user(s) variable containing either a single user or an array of users. So, in your view, you would call:

<%= admin_links(@user) %>

or if iterating through an array of users:

<%= admin_links(user) %>

This is untested and I think the helper method might need a little refining but it shows how to pass the user variable through to generate the correct links.

Regards

Robin

Robin Fisher wrote:

Hi Yannis,

You could define a helper method as follows:

def admin_links(user)   "<%= link_to "Show", user_path(#{user}) %>   <%= link_to "Edit", edit_user_path(#{user}) %>   <%= link_to "Destroy", user_path(#{user}), :confirm => "Are you sure", :method => :delete %>" end

In your controller, you would probably define the @user(s) variable containing either a single user or an array of users. So, in your view, you would call:

<%= admin_links(@user) %>

or if iterating through an array of users:

<%= admin_links(user) %>

This is untested and I think the helper method might need a little refining but it shows how to pass the user variable through to generate the correct links.

Regards

Robin

On Feb 29, 10:47�am, Yannis Jaquet <rails-mailing-l...@andreas-s.net>

@Robin Thank you for your answer. I think my question was not really clear, sorry for that. In fact I would like to have my admin_links(object) method to accept any object having resources. Then I would be able to admin_links(object) and have the links returned as 'object'_path(object) or edit_'object'_path(object).

@Mark Again, thank you very, much that's exactly what I was looking for...