【发布时间】:2016-08-02 00:52:15
【问题描述】:
我必须将 Rails 应用程序从 3.0.6 迁移到 5.0 并且卡住了 - 在较旧的 routes.rb 中,唯一的路线是不明智的:
match ':controller(/:action(/:id(.:format)))'
该应用程序没有 index 方法,但确实使用了一个 index.html.erb 来放置一个呈现到的表单:
<form accept-charset="UTF-8" action="simple/rslts" controller="simple" method="post">
这会执行一个使用 rslts.html.erb 的 rslts 方法,并使用从表单传入的参数来工作。
我将这个完全相同的代码移至 v5 系统并将路由指定为:
Prefix Verb URI Pattern Controller#Action
simple GET /simple(.:format) simple#index
POST /simple(.:format) simple#rslts
root GET / welcome#index"
它运行 index.html.erb,我以呈现的形式得到它:
<form controller="simple" action="simple/rslts" accept-charset="UTF-8" method="post">
它说它找不到 /simple/simple/rslts 的路由失败
我更改了代码,现在渲染:
<form controller="simple" action="rslts" accept-charset="UTF-8" method="post">
它没有说它找不到 /simple/rslts 的路线,但正如您从我列出的路线中看到的那样,确实存在。
我已经通过十几种方法来解决这个问题,并且毫无启发地阅读了路由指南。这只是控制器和视图,没有别的。我希望有人可以帮助我。
【问题讨论】:
标签: ruby-on-rails routes ruby-on-rails-5