[update: by not using 100, just to understand Rails console a little more]

在rails 3的"rails控制台"中,我们可以使用controller,但在rails 2.2或2.3中,我们需要使用@controller

在Rails 3中,我们可以打印出Rails routing为脚手架foo添加的所有路由:

ruby-1.9.2-p0 > puts controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n")
edit_foo_path
edit_foo_url
foo_path
foo_url
foos_path
foos_url
new_foo_path
new_foo_url

但是在Rails 2.3.8上,它给出了formatted_foos_path个,等等,而Rails 2.2.2没有给出任何结果.如何将Rails 2.3.8和2.2.2打印出来?


Rails 2.3.8的详细信息:

ruby-1.8.7-p302 > puts @controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n")
formatted_edit_foo_path
formatted_edit_foo_url
formatted_foo_path
formatted_foo_url
formatted_foos_path
formatted_foos_url
formatted_new_foo_path
formatted_new_foo_url

推荐答案

轨道3.x-6.十、

Rails.application.routes.named_routes.helper_names

轨道2.十、

helpers = Rails.application.routes.named_routes.helpers

这将获得创建的所有命名路由方法.然后你可以做helpers.map(&:to_s)个,以及任何你想要得到你的foo版本的正则表达式

Ruby-on-rails相关问答推荐

Rails HotWire和View Components:涡轮框架不会取代内容

如何将Form_With用于多个没有控制器的型号

刺激中的Rails 7和 bootstrap 错误-无法解析模块说明符 bootstrap

如何在测试期间为 Rails 应用程序启用 Rails.cache 会话对象

如何不需要rails/all?

I18n 用于特定于模型的 Rails 提交按钮

File.open,写入和保存?

$redis 全局变量与 ruby​​ on rails

如何在 Rails 迁移中添加判断约束?

RSpec > 有没有办法用一个命令运行所有测试?

什么是 Ruby 中的 Python 文档字符串?

在 Controller 中调用模型方法

验证一个对象是否有一个或多个关联对象

Rails 中是否有 HTML 安全截断方法?

如何使用 Rspec 判断 ActiveJob 中排队的内容

在 Rails 中,在特定时区创建特定时间(不是现在)的最佳方式是什么?

Rails - 如何在用户登录时覆盖设计 SessionsController 以执行特定任务?

从 Rails 中的 ActiveRecord::RecordNotFound 救援

Ruby on Rails 3:通过 Rails 将数据流式传输到客户端

在 El Capitan 上安装 Nokogiri (1.6.7) 时出错