【问题标题】:Rails 2 route helpers in plugin插件中的 Rails 2 路由助手
【发布时间】:2010-11-23 09:35:55
【问题描述】:

我正在尝试编写一个插件,在我想要执行的任务中,我希望能够从插件中调用路由辅助方法。例如,如果我有map.resources :user,我希望能够从我的插件中调用user_path(:id => 1)。我不断收到未定义的方法 user_path 错误。

在 rails 3 中,您可以使用 Rails.application.routes.url_helpers 执行此操作,但我似乎无法找到 rails 2 的替代方案。包括 ActionController::UrlWriter 没有帮助。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails routes helper


    【解决方案1】:

    我正在使用 rails 2.3.4,我可以在我的插件的控制器和视图中使用我的常规路径助手,至少在我测试的那些中。

    我不能在插件的 lib 文件中使用它们,但那是因为在控制器之外无法使用助手(视图在控制器内部处理,因此它们也可以使用它们)。 lib 文件(插件的核心)往往是加载到模型环境中的模块和类。

    您能否提供有关您正在尝试做的事情的更多详细信息?

    【讨论】:

    • 我正在尝试将gretel breadcrumbs plugin 修复为兼容rails 2。你说的问题在lib文件中,你有什么建议吗?
    • 你说得对,问题是我试图在 lib 文件中使用它们,而不是控制器/视图/助手。我没有很快抓住它,因为我正在使用 lambdas 并且不太了解闭包(在帮助程序中调用了 lambda,但它具有 lib 文件的范围)。谢谢你的回答。
    • 您能分享一下解决方案吗?因为我无法从这些 cmets 中弄清楚,你是如何将插件与 rails 2.3 一起使用的
    【解决方案2】:

    你应该可以做到:

    app.user_path(1)
    

    【讨论】:

    • 这在控制台上工作,但在我的插件中,它说:未定义的局部变量或方法“app”
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2012-04-02
    • 2016-08-05
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多