Помощник для редактирования / показать / уничтожить ссылку с изображением - PullRequest
1 голос
/ 21 ноября 2011

Я пытаюсь сделать хороших помощников, чтобы я мог использовать эти стили:

edit(category)
destroy(post.comment.first)
show(@user)

и мы получаем выбранную ссылку с красивым изображением.

Может кто-нибудь сказать мне, правильно ли я это делаю, или есть лучший способ получения URL-адреса с помощью магических рельсов?

def show(object)
  link_to image_tag("admin/show.png"), eval("admin_{object.class.to_s.downcase}_path(#    {object.id})")
end

def edit(object)    
  link_to image_tag("admin/edit.png"), eval("edit_admin_#{object.class.to_s.downcase}_path(#{object.id})")
end

def destroy(object)    
  link_to image_tag("admin/destroy.png"), eval("admin_#{object.class.to_s.downcase}_path(#{object.id})"), :method=>:delete, :confirm=>"Do you really want to delete this?"
end

это работает нормально, но я ищу способ магических рельсов: -)

1 Ответ

1 голос
/ 21 ноября 2011

замените eval на send и замените downcase на underscore, что является соглашением о рельсах

send("admin_{object.class.to_s.underscore}_path", object.id)

Кстати, рельсы могут сделать это для вас:

# equals to your `show(object)`
link_to image_tag('admin/show.png'), [:admin, object]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...