Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法?

2024-04-04

我正在编写一个帮助程序,将 HTML 属性添加到 Rails 中的 link_to 标记中。因此,我的想法是,我的辅助方法应该接受传递给它的任何参数或块,使用这些相同的参数调用 link_to,将其属性添加到返回的内容中,并将结果返回给调用者。

像这样:

def link_to(*args, &block)
  ... rails code in link_to ...
end

def myhelper(*args, &block) # Notice that at this point, 'args' has already
  link_to()                 # become an array of arguments and 'block' has
  ... my code ...           # already been turned into a Proc.
end

myhelper() # Any arguments or blocks I pass with this call should make
           # it all the way through to link_to.

因此,正如您所看到的,似乎没有办法(不涉及大量代码和条件分支)将 myhelper 收到的内容传递给 link_to,而不将所有参数恢复为它们之前的样子我的方法。

对于这个问题,是否有更“类似 Ruby”的解决方案?


您可以使用* and &在方法调用中将数组转回参数列表,将过程转回块。所以你可以这样做:

def myhelper(*args, &block)
  link_to(*args, &block)
  # your code
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法? 的相关文章

  • Rails 4 的 mobile_fu

    我正在尝试将我的应用程序从 Rails 3 2 13 切换到 Rails 4 在此过程中 我遇到了一个主要障碍 我使用 gem mobile fu 来确定用户是否来自移动设备 该 gem 需要 Railties 3 2 13 但 Rails
  • Omniauth + Google + Faraday + 代理背后=如何设置代理?

    我的生产服务器是乌班图12 我在用着设计 OmniAuth处理 Google 身份验证 但是当 Google 将控件返回给我的应用程序时 我收到错误 网络不可达 我认为这是因为服务器位于代理后面 这是错误描述 Request URL htt
  • class_eval、class_exec、module_eval 和 module_exec 之间有什么区别?

    我正在读Module文档 但似乎无法理解它们的差异以及应该在哪里使用 怎么样eval不同于exec 我将回答比你的问题更多的内容 包括instance eval exec 在你的问题中 所有变体 instance module class
  • 如何在生产服务器中运行 sidekiq?

    我有一个带有apache passenger的服务器 我将如何奔跑sidekiq在生产中 运行所需的任何配置 bundle exec sidekiq Thanks bundle exec sidekiq d L log sidekiq lo
  • 带回形针、导轨的水印图像 4

    我一直在尝试按照中列出的答案向我的图像添加水印带有回形针的水印 https stackoverflow com questions 13517757 watermark with paperclip 水印 rb module Papercl
  • 使用redirect_to :create 动作

    我正在尝试重定向到另一个控制器的创建方法 但是 我找不到将方法设置为 POST 的方法 这将导致调用索引方法 使用 method gt post只是创建一个新参数 但不会更改 http 方法 有什么想法如何重定向到创建方法吗 您无法在重定向
  • Emacs、ruby:将 do 结束块转换为大括号,反之亦然

    我经常发现自己转换这样的代码 before do something end to before something 有没有办法在 emacs 中自动执行此任务 我使用 ruby mode 和 rinary 但它们在这里没有太大帮助 rub
  • 创建一个默认为零的工厂关联?

    在factories rb 文件中使用FactoryGirl gem 如何创建一个关联默认为nil 的工厂 我正在思考以下几点 Factory define user do factory factory association post
  • Rails 3 SSL 路由从 https 重定向到 http

    这个问题与此相关SO 问答 rails 3 ssl deprecation https stackoverflow com questions 3634100 rails 3 ssl deprecation建议使用routes rb和类似的
  • rspec 中的模拟方法链

    有一系列方法可以获得user目的 我试图模拟以下内容以返回user in my Factory Girl current user AuthorizeApiRequest call request headers result 我可以模拟该
  • 升级到 Rails 6 时是否有一种编程方法可以检测 Zeitwerk::NameError?

    我目前正在将旧的 Rails 应用程序迁移到 Rails 6 好像项目中有些文件和里面定义的类不一致 运行应用程序测试时我没有看到此错误 但部署后我收到如下错误 Zeitwerk NameError expected file app my
  • 如何在initialize()中使用define_method

    尝试使用define method inside initialize但得到未定义的方法define method 我究竟做错了什么 class C def initialize n define method n puts some me
  • 如何将html id添加到rails中的form_for标签中?

    我正在尝试将 id 标签添加到我在 Rails 中创建的表单中 表单的开头有以下代码 我是否可以向 form for 嵌入式 ruby 添加一个 id 或者我是否必须创建一个 form tag 字段并在那里添加 id 如果我必须创建 for
  • 轨道上的下一个对象问题

    视频影像 表 id title votes count 视频影像 控制器 def show video Video find params id next video Video order votes count DESC where v
  • Ruby on Rails 离线编程

    我将离开互联网几周 但仍然想完成一个项目 我应该采取哪些步骤来确保在断开连接时能够访问我需要的内容 ruby 和 ROR 离线时 以下内容很难获得 gems docs Rails 专家博客 堆栈溢出 so gem 安装尽可能多 下载所有的轨
  • 回形针:样式取决于模型(has_many 多态图像)

    我已将模型设置为使用多态图像模型 这工作正常 但是我想知道是否可以更改每个模型的 styles 设置 找到了一些使用 STI 模型 Art has many images as gt imageable Image belongs to i
  • 从 Jekyll 插件向页面添加属性

    假设我想要一个包含如下内容的页面 h1 page comment count Comment s h1 for c in page comment list div strong c title strong br c content di
  • 一对一的DataMapper关联

    我对 DataMapper 非常陌生 我正在尝试为以下场景创建模型 我有许多用户 有用户名 密码等 他们也可以是玩家或裁判员或两者兼而有之 因此单表继承不是一个选项 基本模型是 class User include DataMapper R
  • Ruby on Rails Webpacker 找不到 asset_pack_path 下的图像

    我在使用 Ruby on Rails Webpacker 在视图中包含图像时遇到问题 当我尝试使用 html img 标签和 asset pack path 在我的视图中插入图像时 出现错误 我的图像位于app javascript ima
  • 如何使用 Rails 4 和 Ruby 2.0 应用程序进行实时重新加载?

    如果我在 Rails 4 Ruby 2 0 项目的文本编辑器中编辑 scss 或 erb 文件 我希望在浏览器中看到实时更改 我尝试了 Guard 和 Guard live reload 但它抛出以下错误 22 58 04 ERROR Co

随机推荐

  • 使用 jQuery 绘制饼图

    我想用 JavaScript 创建一个饼图 在搜索中我发现了 Google Charts API 由于我们使用的是 jQuery 我发现有Google 图表的 jQuery 集成 http www maxb net scripts jgch
  • 针对 arm64 和 32 位架构进行编译时的基础类型

    在为 arm64 编译 iOS 应用程序的代码时 我遇到了一个有趣的问题 该问题与自定义 Foundation 类型的不同基本类型有关 假设我想 printf 或 stringWithFormat 声明为的数字NSU整数 NSString
  • EF(实体框架)“using”语句的用法

    我有一个关于 MVC 的项目 我们选择 EF 进行数据库事务 我们为 BLL 层创建了一些管理器 我找到了很多例子 其中 using使用 语句 即 public Item GetItem long itemId using var db n
  • 我将如何保存和加载 UITextField?

    我到处搜索并尝试了很多代码 但似乎没有什么对我有用 我需要做的就是加载 在 viewDidLoad 上 一个文本字段并在按下按钮时保存它 是什么easiest这样做的方法 我正在使用单窗口应用程序 我没有视图控制器 这可能会有所不同 Tha
  • 运行 sympy 中表达式的 AST

    我正在使用 sympy 来计算复杂函数表达式的一些高阶导数 我想遍历表达式的 AST 例如首先深度遍历节点 我怎么做 一个简单的深度优先旅行将是这样的 from sympy import pi sin from sympy abc impo
  • 将 JSP 包含到 sling servlet 中

    我目前正在开发一个小项目 试图帮助某人弄清楚如何连接组件 理想情况下我们想做两件事 有一个呈现模板的 jsp 我们所有的业务登录都在 SlingAllMethodServlet 中 servlet 定义要点 package definiti
  • 如何使用 Slim 接受所有 REST URI 中的排序和分页参数?

    我正在使用 Slim PHP 框架为我的应用程序创建 RESTful API 我希望所有 URL 都能够接受排序和分页参数 有人可以告诉我最好的方法吗 另外 有人可以为我提供一些适当的 REST URI 吗 IE
  • vs2010调试:模块构建时没有调试信息?

    收到此消息 这不是真的 以下模块是在启用优化或没有调试信息的情况下构建的 它给了我一个临时 asp net 文件的路径 C WINDOWS Microsoft NET Framework v4 0 30319 Temporary ASP N
  • 日期格式到cron格式转换

    我想将日期格式更改为 cron 日期格式 怎么办 日期格式 2018 05 15 17 30 00 cron 格式 30 17 15 05 您可以通过多种方式做到这一点 但这是更简单的方法之一 bin bash DATESTR 2018 0
  • 如何将 PhpStorm 与 Xdebug 连接

    我希望这里有人可以帮助我解决我的问题 我最近进入了我的第一个 PHP 项目 需要设置调试 我知道很多人在我面前遇到了同样的问题 但我很难找到解决方案 我需要使用 Xdebug 设置 PhpStorm 并且所有设置使其仍然无法工作 当我开始调
  • MySQL 8.x 中的主要错误? -- 外键

    当从 MySQL 用于代码生成器 检索外键信息时 我注意到这种奇怪的行为 它看起来像是 MySQL 8 x 中的一个主要错误 当我使用创建外键时REFERENCES引擎不强制执行它 例如 create table p id int prim
  • ADO Error 异常处理?

    我刚刚通过将表和查询替换为 ADO 组件中的等效项 从使用 BDE 切换到 ADO 我总是在 try catch 中执行查询 如下所示 Fdm is Data Module TEndOfDay is TTable QEndOfDay is
  • iOS Swift:iOS 8 上的 unsafeMutableAddressor 崩溃

    通过堆栈跟踪 unsafeMutableAddressor崩溃似乎是在访问时AppConstant kShowOverlay从控制器的viewDidLoad 我已经定义了AppConstant swift像下面这样 struct AppCo
  • 在 Java 中,集合是最终的意味着什么? [复制]

    这个问题在这里已经有答案了 在 Java 中将集合声明为 Final 意味着什么 是不是不能再添加更多的元素了 难道已经存在的元素就不能改变了吗 难道是别的什么 不 这只是意味着引用不能更改 final List list new Link
  • 当页面比屏幕大时如何将div定位在屏幕中间

    您好 我正在使用类似于以下内容的方法来将 div 放置在屏幕中间
  • 如何让 在 IE 10、Firefox、Safari 等中显示全时间选择器

    我一整天都在为此苦苦挣扎 我一直在使用
  • React Native 图像预取

    我很难理解Image prefetch 在里面doc s http facebook github io react native docs image html prefetch对此没有太多解释 通过将远程映像下载到磁盘来预取远程映像以供
  • 我应该如何将 IoC DI 与此存储库模式结合使用?

    我正在使用在这个问题的答案中找到的存储库模式 为每个对象创建通用存储库与特定存储库的优势是什么 https stackoverflow com questions 1230571 advantage of creating a generi
  • Powermock - 如何模拟特定方法并保持对象的其余部分不变

    我有一个 Person 类 其中设置了 FirstName LastName 执行测试用例 1 的测试类 我们可以只模拟一个特定的方法 getLastName 并保留其他所有内容 其他内部字段 函数 原样 吗 public class Pe
  • Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法?

    我正在编写一个帮助程序 将 HTML 属性添加到 Rails 中的 link to 标记中 因此 我的想法是 我的辅助方法应该接受传递给它的任何参数或块 使用这些相同的参数调用 link to 将其属性添加到返回的内容中 并将结果返回给调用