【问题标题】:Rails routing exampleRails 路由示例
【发布时间】:2016-04-13 15:16:10
【问题描述】:

我正在尝试将工作的 rails 2.4 应用程序移植到 rails 4.2。我无法让路由正常工作。

x.pdf 的 URL 被分解为 id.format 并作为参数传递给报表控制器。

在 Rails 2.4 我有

map.report ':id.:format', :controller => :reports, :action => :generate

在 Rails 4.2 中我正在尝试使用

get ':id.:format' => 'reports#generate'

但是当我运行应用程序并浏览到http://www.example.com/x.pdf 时,我收到了致命错误

ActionController::RoutingError (没有路由匹配 [GET] "/x"):

当我运行 rake 路线时,我得到:

Prefix Verb     URI Pattern               Controller#Action
    GET      /:id.:format              reports#generate

我正在使用 Ruby 2.3.0、Rails 4.2.5、NGINX 1.9.9、Passenger 5.0.23

任何帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4.2


    【解决方案1】:

    您应该将 get ':id.:format' 更改为 get ':id'

    【讨论】:

    • 那我还能得到 pdf 作为基于 .xxx 的格式参数吗?在旧应用程序中,我可以指定不同的格式,例如 .xml 来呈现报告。
    • 是的,您只需将 .pdf 添加到 URL 的末尾,如果控制器设置正确,Rails 应该负责映射。
    • 看起来正确,当我现在耙路线时,我得到 GET /:id(.:format) 报告#generate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多