前缀参数 rails 路线

Posted

技术标签:

【中文标题】前缀参数 rails 路线【英文标题】:prefix param rails routes 【发布时间】:2013-07-24 20:01:35 【问题描述】:

我正在使用 rails3,我想要一个如下所示的路由前缀:

我的路线中有以下内容:

require 'resque/server'

Woofound::Application.routes.draw do
  scope "/:my_param" do
    resource :users
  end
end

然后我的应用程序控制器中有以下内容:

class ApplicationController < ActionController::Base
   before_filter :check_param

   private
   def check_param
     unless Myobject.find_by_param(param[:my_param])
       raise "You must add this param"
     end
   end
end

然后在我的路线中,我希望能够访问 user_path(@user) 而不必这样做

user_path(:param_for_route_name_spacing, @user)

如果您需要更清晰的信息,请告诉我。

简而言之,我希望我的路由有一个参数化前缀,参数会自动传递回参数化命名空间,而无需将其作为第一个参数添加到 am 对象路径。

【问题讨论】:

【参考方案1】:

试试

class ApplicationController < ActionController::Base
  def user_path(user)
    super(:param_for_route_name_spacing, user)
  end
end

【讨论】:

好的,你的路由文件应该有resources :users而不是resource :users,并在控制器中调用helper_method :user_path 我不小心把一个 :as => :something_else 放在我的路由中 你的修复很完美,非常感谢 我最终使用了default_url_options guides.rubyonrails.org/…

以上是关于前缀参数 rails 路线的主要内容,如果未能解决你的问题,请参考以下文章

错误的参数类型类(预期的模块)Rails 5 拆分路线

Rails 6 路线 - 如何添加自定义“新”路线?

在 Rails 中同时使用 2 个参数制作路线

Rails 6 路线 - 简单嵌套路线的正确方法

升级到 Rails 6.1 后的 Rails 路线问题

ruby on rails中收集路线和会员路线的区别?