【发布时间】:2011-06-24 16:12:23
【问题描述】:
我使用 polimorphic_path 并且它有些错误。此方法需要一些未定义的路由助手。我如何定义(如常规方法)自己的路由助手,它将像“model_name_path,model_name_url 等”一样使用?
【问题讨论】:
标签: ruby-on-rails routes
我使用 polimorphic_path 并且它有些错误。此方法需要一些未定义的路由助手。我如何定义(如常规方法)自己的路由助手,它将像“model_name_path,model_name_url 等”一样使用?
【问题讨论】:
标签: ruby-on-rails routes
这个解决方案对我有用。
将此代码添加到config/routes.rb 文件的末尾。确保将 MyApp 替换为您的应用程序名称。
MyApp::Application.routes.named_routes.module.module_eval do
def model_name_path(*args)
# Your code here
end
def model_name_url(*args)
# Your code here
end
end
MyApp::Application.routes.named_routes.instance_eval do
@helpers += [:model_name_path, :model_name_url]
end
这些自定义方法将在控制器、视图和测试中可用。
【讨论】:
我知道 _path 的一种可能的答案,但对于 _url 来说同样的方法对我不起作用。有人知道为什么吗?
# at the bottom of config/routes.rb
module ActionView::Helpers::UrlHelper
def model_name_path model, args={}
# your implementation
end
end
【讨论】: