我想知道是否有办法扩展Rails为我的路由创建的现有路径帮助程序。我已经有类似于/videos/view/:id的东西了,现在我需要在该链接的任何地方(从当前params集合中)附加一个标签参数。目前我唯一能想到的解决方法是遍历所有视图并更改对帮助程序的调用,使其看起来像这样:view_videos_path(video, tag: params[:tag])。现在显然还要进行一些工作,更容易的方法是仅仅覆盖现有的路径帮助程序,就像这样:
显然将此放入模块中会导致无限递归,因此我想知道是否有任何最佳实践来解决这个问题。
另外,您认为这种方法怎么样?我不确定像这样扩展助手是否明智。但是在目前看来,它看起来还可以。
def view_videos_path(video, opts)
view_videos_path(video, opts.merge(tag: params[:tag]))
end
显然将此放入模块中会导致无限递归,因此我想知道是否有任何最佳实践来解决这个问题。
另外,您认为这种方法怎么样?我不确定像这样扩展助手是否明智。但是在目前看来,它看起来还可以。
super()
而不是同名方法。 - Lee JarvisActionController
中(这样路径也可以在控制器中使用)。 - Lee Jarvis