如何获取调用别名方法的名称?

2024-01-08

我正在调用方法link_to_admin然后我给另一个方法起了别名simple_link_to

def link_to_admin(name,url,options={})

  # My stuff here
  link_to(name,url,options)          
end

alias_method :simple_link_to, :link_to_admin

如果我打电话,我会遇到一个问题link_to_admin,我想将值打印到<li> tag

Ex.

def link_to_admin(name,url,options={})

  # My stuff here
   menu = ""
   menu << "<li> #{link_to(name,url,options)}</li>"
   menu.html_safe
end

如果我打电话simple_link_to不需要<li>标签。所以目前我正在通过一个options like li_required然后检查我的方法中的条件。这工作得很好,我知道这是正确的方法。

def link_to_admin(name,url,options={})
   menu = ""
   menu << options[:li_required] ? "<li> #{link_to(name,url,options)}</li>" : link_to(name,url,options)
   menu.html_safe
end

但是,在我尝试找到像这样的调用方法之前simple_method or link_to_admin,所以我尝试了:

1.__method__
2.caller[0]=~/`(.*?)'/

这没有按预期工作。

我正在打电话simple_method or link_to_admin中的方法layout so __method__总是会回来link_to_admin only.

But caller[0]=~/(.*?)'/if am calling fromlayoutmeans, it's returning layout path and if I am calling from any otherhelperorclass` 意味着它返回当前方法。

还有其他方法可以检查方法名称。

我知道这不是一个好问题,有人可以告诉我其他方式吗?

注意:- 我创建了 alias_method 仅用于命名转换。除了添加之外<li>标记我没有做任何事情。

不只是这里,我很久以前就有这样的疑问。我知道我可以再定义一种方法并且我可以做到。

留下我的场景,一般我都想知道这个答案。


Using __callee__代替__method__将获取正在运行的别名的名称。

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

如何获取调用别名方法的名称? 的相关文章

  • 获取设备中的当前用户ID

    如何使用设备获取控制器中的当前用户 ID 在我的控制器中我有这样的东西 def index me current user c User find me sheets c time sheets end 我收到一条错误消息 无法找到没有 I
  • 多态控制器和调用对象

    我的地址具有多态关系 可以由成员或依赖者拥有 一切看起来都很棒 直到我意识到除非我遗漏了一些东西 否则我不知道创建它的对象是什么类型 有没有办法告诉路由文件包含对象的类型 Models class Member lt ActiveRecor
  • Ruby 中的并行赋值运算符

    我正在查看 Ruby 编程 书中的一个示例 def fib up to max i1 i2 1 1 parallel assignment i1 1 and i2 1 while i1 lt max yield i1 i1 i2 i2 i1
  • Rails 注释分段错误

    有一些问题围绕着这个问题 但没有什么真正能满足我的需求 After I bundle install下面列出了我的 Gemfile 我运行annotate并出现以下错误 Users nickcoelius rvm gems ruby 1 8
  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • 如何计算带有偏移量的异或?

    我想用不同的偏移量进行异或计算以在计算中列出 例子 key 0 1 0 text 0 1 0 1 0 1 0 1 1 1 异或计算 key 0 text 0 key 1 text 1 key 2 text 2 key 0 text 3 ke
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • 如何在 Rails 测试中测试 params 哈希?

    以下内容会生成错误 未定义的局部变量或方法 params assert equal params recipient id users one id 如何测试参数哈希 另外 你如何测试assert redirect当存在参数时 参数附加到
  • yard 0.7.3 无法在 Markdown 和 Textile 中构建我的自述文件

    我决定将我的项目中的 README 文件转换为 Markdown 并一直使用yard 验证文档是否正确呈现 所以我安装了 rdiscount 将 README 更改为 README md 并尝试 yard doc README md 这给了
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 如何从引擎覆盖 Rails 应用程序路由?

    我有一个 Rails 应用程序 我正在尝试将 Rails 引擎集成到其中 主机应用程序有一些捕获所有路由 magic urls match gt admin rendering show match path edit gt admin r
  • 如何使用本地安装的gems执行Ruby程序?

    我已经使用安装了我的依赖项 bundle package 然后将它们传输到离线服务器并运行 gt bundle install local Using mime types 1 19 Using rest client 1 6 7 Usin
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 测量两个字符串之间相似性的有效方法是什么? (编辑距离使堆栈太深)

    所以 我从这个开始 http en wikibooks org wiki Algorithm Implementation Strings Levenshtein distance Ruby http en wikibooks org wi
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 使用 attr_accessor 动态创建类属性

    在Ruby中 有没有办法动态地将实例变量添加到类中 例如 class MyClass def initialize create attribute name end def create attribute name attr acces

随机推荐

  • 尝试在 Github .md 文件上渲染图表时出现 Mermaid 语法错误

    我已经关注了这个美人鱼教程 https mermaid js github io mermaid sequenceDiagram但是当我尝试将其放入 Github 上的 md 文件时 会出现错误 这完美地适用于现场编辑 https merm
  • 我什么时候应该关闭在无状态会话 bean 中创建的 JMS 连接?

    我有一个关于何时关闭在无状态会话 Bean EJB 中创建的连接的一般性问题 连接到 ActiveMQ 并且它们是在 bean 的构造函数中创建的 然后在方法中使用该连接 我想知道关闭该连接的适当时间 地点是什么时候 有一个单独的方法来关闭
  • istream 提取运算符:如何检测解析失败?

    如何检测 istream 提取是否失败 string s x stringstream ss s int i ss gt gt std ios hex gt gt i 编辑 虽然问题标题涵盖了这一点 但我忘了在正文中提及 我真的想检测失败是
  • 在 TFS 中,如何更正现有变更集上工作项的链接

    将更改集签入 VS2010 TFS 中的源代码管理后 如何更正与签入相关的工作项 例如 如果我意识到还有另一个工作项应该链接到变更集 或者它是一个错误修复并且链接到错误的错误工作项 您无法从变更集 UI 中更改它 但可以从大多数工作项 UI
  • Google Cloud SQL 上的 1290 错误

    我今天在使用 MySQL Workbench 时才开始收到此错误 并注意到它早在周六就出现在我的应用程序中 还有人收到吗 知道可能是什么原因造成的吗 ERROR错误代码 1290 MySQL 服务器正在使用 read only 选项运行 因
  • Microsoft Visual Studio 2017 依赖于每个 Xamarin 操作

    我最近安装了 Visual Studio 2017 当我创建 Xamarin android 项目或单击 xamarin 设置时 它会挂起 当单击任意位置时 它会显示 Microsoft Visual Studio 正忙 Xamarin 版
  • 如何将 setOnFocusChangeListener 与 RecyclerView 结合使用?

    我在 RecyclerView 的适配器类中的 onBindViewHolder 上有以下内容 holder answerEditText setOnFocusChangeListener new View OnFocusChangeLis
  • 在 VS2010 中将设计器与 WPF 的 XAML 窗口分离

    我在 Visual Studio 2010 中没有看到用于将设计器窗口与 WPF 的 XAML 窗口分开的按钮 我有三个屏幕 我想要一个全屏 XAML 窗口和一个全屏设计器窗口 像往常一样打开 XAML 文件 在解决方案资源管理器中 右键单
  • 我如何打开不同的linux终端以在python中输出不同类型的调试信息?

    我需要将不同的信息输出到不同的终端实例 而不是在同一输出流中打印它们 例如 std err 或 std out 例如 我有 5 种信息说 A E 需要显示在同一桌面上的不同终端窗口上 看起来像 终端1 终端2 端子3 端子4 端子5 我知道
  • 用前导 0 填充计数器到 9,然后用 php 删除前导零

    尝试用前导 0 填充最多 9 个 然后删除 01 02 03 04 05 06 07 08 09 10 11 12 14 到目前为止我有这个 您还可以使用str pad http us php net manual en function
  • Firefox 和 Opera 中的 Webfont 平滑和抗锯齿

    我的网站上使用了定制的网络字体 为了设置渲染输出的样式 我使用了以下代码 webkit text stroke width 05px webkit text stroke color white webkit font smoothing
  • 如何只加载某些层的权重?

    我想获取某些层的权重 不是全部 因为架构不同 来自model trained并初始化model untrained用它 我怎样才能用 Keras 做到这一点 如果你有一个函数create model 它返回一个 Keras 模型 examp
  • 如何将QMainWindow设置为模态窗口?

    我正在使用 QMainWindow 进行项目的 GUI 开发 我遇到的一个问题是当一个窗口正在运行时阻止所有其他可见窗口获取输入 我不能使用QDialog 因为需要QMainWindow的丰富功能 如何将特定窗口声明为模态窗口 我尝试过QW
  • BeanPostProcessor 混乱

    我试图理解 Spring 中的 BeanPostProcessor 但不明白它的作用 BeanPostProcessor 定义了在这些点调用的两个方法是否正确 在初始化之前 init 方法或 afterPropertiesSet 但实例已创
  • Camel Splitter并行处理数组列表-并发访问问题

    使用 Camel 拆分 ArrayList 并最多 10 个线程并行处理每个项目 以下是配置 线程池配置文件设置为最大线程数 10
  • 计算闰年的Java代码

    我正在关注 Java 的艺术与科学 一书 它展示了如何计算闰年 本书使用了ACM Java Task Force 的库 这是本书使用的代码 import acm program public class LeapYear extends C
  • C# Thread.Sleep(0) 是什么意思?

    意思是没有延迟吗 一本书上说如下 Thread Sleep 0 放弃线程的当前时间片 立即 主动将CPU交给其他线程 这是否意味着即使应该执行一条语句 给 sleep 0 也会暂时跳过执行 0表示没有minimum控制权将返回给线程之前的时
  • 使用Python列表作为队列的效率

    一位同事最近编写了一个程序 其中使用 Python 列表作为队列 换句话说 他用了 append x 当需要插入物品时 pop 0 当需要移除物品时 我知道Python有collections deque http docs python
  • 如何让 TProgressBar 停止滞后?

    我有一个运行大量操作的应用程序 并且我正在尝试使用 TProgressBar 来跟踪正在发生的情况 我设置了多个步骤 并调用 StepIt 来增加进度条 问题是 它并没有很好地跟上 它似乎不喜欢直接跳到正确的位置 而是逐渐滑动到正确的位置
  • 如何获取调用别名方法的名称?

    我正在调用方法link to admin然后我给另一个方法起了别名simple link to def link to admin name url options My stuff here link to name url option