Ruby on rails 用于编辑/显示/销毁图像链接的帮助器

Ruby on rails 用于编辑/显示/销毁图像链接的帮助器,ruby-on-rails,Ruby On Rails,我正在努力成为优秀的助手,以便使用以下风格: edit(category) destroy(post.comment.first) show(@user) 我们得到了一个很好的图像选定的链接 有人能告诉我我做得对吗,或者有没有更好的神奇的rails方法来获取url def show(object) link_to image_tag("admin/show.png"), eval("admin_{object.class.to_s.downcase}_path(# {object.i

我正在努力成为优秀的助手,以便使用以下风格:

edit(category)
destroy(post.comment.first)
show(@user)
我们得到了一个很好的图像选定的链接

有人能告诉我我做得对吗,或者有没有更好的神奇的rails方法来获取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

这很好,但我正在寻找神奇的rails方式:-)将
eval
替换为
send
,并将
downcase
替换为
下划线
,这是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]

eval
替换为
send
,将
downcase
替换为
下划线
,这是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]

有什么区别?评估是邪恶的吗?:-)<代码>链接到图像标签('admin/show.png'),[:编辑,:admin,object]效果很好。thanks@huanson
eval
将调用解析器将字符串解析为ruby代码,然后运行它,这在运行时太慢了
send
只需找到相应的方法并应用它。有什么区别?评估是邪恶的吗?:-)<代码>链接到图像标签('admin/show.png'),[:编辑,:admin,object]效果很好。thanks@huanson
eval
将调用解析器将字符串解析为ruby代码,然后运行它,这在运行时太慢了
send
只需找到相应的方法并应用它即可。