【问题标题】:How to access URL parameters in Rails routes如何访问 Rails 路由中的 URL 参数
【发布时间】:2014-08-13 14:45:23
【问题描述】:

我的 Spree 路由出现问题。

请求正在发送到/spreeapi,而它们应该发送到/api

一些请求的 URL 参数如下:

/spreeapi/option_types?q%5Bname_cont%5D=&_=1407867241807

我已尝试添加此路由:

mount Spree::Core::Engine, :at => '/shop'
get "/spreeapi(/*path)" => redirect{ |params| "/shop/api/#{params[:path]}".chomp("/") }

虽然这会将请求连接到正确的路径,但我丢失了所有 URL 参数

如何重写我的路由重定向以包含它们。

【问题讨论】:

    标签: ruby-on-rails routing spree rails-routing


    【解决方案1】:

    这是我的最终解决方案(感谢@Balrick 的帮助):

    get "/spreeapi(/*path)" => redirect{ |params, request| "/shop/api/#{params.delete(:path)}?#{request.params.to_query}" }
    

    【讨论】:

      【解决方案2】:

      尝试使用以下行将查询字符串附加到重定向的网址

      get "/spreeapi(/*path)" => redirect{ |params| "/shop/api/#{params.delete(:path)}?#{params.to_query}" }
      

      【讨论】:

      • 不幸的是,我仍然在 2014-08-13 10:33 开始 GET "/spreeapi/taxons?per_page=50&page=1&without_children=true&q%5Bname_cont%5D=&_=1407944032930" for 127.0.0.1: 58 -0500 在 2014 年 8 月 13 日 10:33:58 -0500 开始 GET "/shop/api/taxons" for 127.0.0.1 由 Spree::Api::TaxonsController#index 处理为 JSON
      猜你喜欢
      • 2020-07-22
      • 2017-09-19
      • 1970-01-01
      • 2011-06-21
      • 2016-04-16
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多