用于编辑/显示/销毁带有图像的链接的辅助工具



我想做一个很好的帮手,这样我就可以使用这些风格:

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

这是工作很好,但我正在寻找神奇的轨道方式:-)

eval替换为send,将downcase替换为underscore,这是rails的惯例

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

顺便说一句,rails可以为你做这些:

# equals to your `show(object)`
link_to image_tag('admin/show.png'), [:admin, object]

最新更新