首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扩展现有Rails路径辅助对象

扩展现有Rails路径辅助对象
EN

Stack Overflow用户
提问于 2012-07-17 17:35:21
回答 1查看 1.6K关注 0票数 3

我想知道是否有一种方法可以扩展Rails为我的路由创建的现有路径助手。

我已经有了类似/videos/view/:id的东西,现在我需要将一个tag参数附加到该链接的任何位置(从当前的params集合中)。

我现在看到的唯一解决方案是遍历所有视图,并将对helper的调用更改为如下所示:

view_videos_path(video, tag: params[:tag])

显然,这需要做一些工作,更简单的方法是用下面这样的代码覆盖现有的path helper:

代码语言:javascript
运行
复制
def view_videos_path(video, opts)
  view_videos_path(video, opts.merge(tag: params[:tag]))
end

显然,把它放在一个模块中会导致无休止的递归,所以我想知道是否有任何关于如何做到这一点的最佳实践。

另外,你对这种方法有什么看法?我真的不确定这样扩展helper是否明智。但在我看来,这看起来是合理的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 18:55:46

将它们放在一个助手模块中并调用super,您也可以将其包含到ApplicationController中,以便在控制器中也可以使用这些路径:

代码语言:javascript
运行
复制
# app/helpers/path_helpers.rb
module PathHelpers
  def view_videos_path(video, opts)
    super(video, opts.merge(tag: params[:tag]))
  end
end

class ApplicationController
  include PathHelpers # we could also use helper_method for each method
end
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11519766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档