Ruby on rails 如何在rails 3中定义自己的路由助手?

Ruby on rails 如何在rails 3中定义自己的路由助手?,ruby-on-rails,routes,Ruby On Rails,Routes,我使用Poliu路径,它有一些小车。此方法需要一些未定义的管线辅助对象。我如何定义(像常规方法一样)自己的路由帮助器,它将像“model\u name\u path、model\u name\u url等”一样被使用?我知道一个关于路径的可能答案,但对于url,同样的答案不适用于我。有人知道为什么吗 # at the bottom of config/routes.rb module ActionView::Helpers::UrlHelper def model_name_path m

我使用Poliu路径,它有一些小车。此方法需要一些未定义的管线辅助对象。我如何定义(像常规方法一样)自己的路由帮助器,它将像“model\u name\u path、model\u name\u url等”一样被使用?

我知道一个关于路径的可能答案,但对于url,同样的答案不适用于我。有人知道为什么吗

# at the bottom of config/routes.rb
module ActionView::Helpers::UrlHelper
    def model_name_path model, args={}
        # your implementation
    end
end

这个解决方案对我有效

将此代码添加到
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

这些自定义方法将在控制器、视图和测试中可用。

哦,我认为它也适用于_url,只是我是从控制器而不是视图调用_url。假设我有一个名为user_links的助手方法名,我在哪里根据您的示例指定方法名。我有一个模特。我的代码如下所示:-~module ActionView::Helpers::UrlHelper def post_name_path post,args={}#您的实现-->这到底应该有什么?end end~很抱歉,我尝试使用适当的代码块,但在“注释”部分无法正确使用。在Rails 4中:Rails.application.routes.named_routes.url_helpers_module.module_eval do。。。