首页 文章

如何为嵌套资源干掉url_helpers并让他们知道父类?

提问于
浏览
0

在Rails 3.2应用程序中,我可以通过执行类似操作来查看包含指向当前对象的链接的视图代码

#helper
def current_url(new_params)
  url_for params.merge(new_params)
end

#shared partial
<%= link_to "JSON", current_url(:format=>:json) %>

但是,如果我需要链接到嵌套资源呢?例如,可以对User和Object模型进行注释的多态Comment模型 . 这是使用嵌套路由设置的,因此要链接到我将使用的注释视图

#user view
<%= link_to "User's Comments", user_comments_path(@user) %>
#object view
<%= link_to "Object's Comments", object_comments_path(@object) %>

有没有办法干掉这个而不通过本地部分?我想要类似的东西

#shared/_comments_link.html.erb
<%= link_to "#{resource.class.name}'s Comments", #{resource}_comments_path(#{resource}) %>

但我看不出如何让url_helper知道父类是什么 .

1 回答

  • 0

    帮手看起来像这样

    def link_to_comments(resouce)
      name = "#{resource.class}'s Comments"
      path = send :"#{resource.class.name.underscore}_comments_path", resource
      link_to name, path
    end
    

相关问题