加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 从rails 3.2.0升级到3.2.2时出现“新”路由问

发布时间:2020-12-17 01:46:21 所属栏目:百科 来源:网络整理
导读:将rails从3.2.0升级到3.2.2时,我遇到了一些路由问题. 当生成具有路径帮助程序的新路由时,帮助程序工作并生成如下所示的链接: /things/new 但是,当您访问该链接时,它会抛出路由错误… Routing ErrorNo route matches {:action="edit",:controller="app/thing
将rails从3.2.0升级到3.2.2时,我遇到了一些路由问题.

当生成具有路径帮助程序的新路由时,帮助程序工作并生成如下所示的链接:

/things/new

但是,当您访问该链接时,它会抛出路由错误…

Routing Error
No route matches {:action=>"edit",:controller=>"app/things",:id=>#<Thing id: nil,title: n....

它使编辑网址操作错误,而不是新操作.

路线上什么也没有……

scope :module => :app,:as => :app,:constraints => { :subdomain => /app/ } do
     resources :things
  end

有没有人经历过这个或知道发生了什么?

谢谢.

额外细节……

耙路线:

app_things GET    /things(.:format)                                    app/things#index {:subdomain=>/app/}
               POST   /things(.:format)                                    app/things#create {:subdomain=>/app/}
 new_app_thing GET    /things/new(.:format)                                app/things#new {:subdomain=>/app/}
edit_app_thing GET    /things/:id/edit(.:format)                           app/things#edit {:subdomain=>/app/}
     app_thing GET    /things/:id(.:format)                                app/things#show {:subdomain=>/app/}
               PUT    /things/:id(.:format)                                app/things#update {:subdomain=>/app/}
               DELETE /things/:id(.:format)                                app/things#destroy {:subdomain=>/app/}

卷曲:

curl -IL http://app.testapp.com/things/new
HTTP/1.1 404 Not Found

从日志(堆栈跟踪?):

Started GET "/things/new" for 127.0.0.1 at 2012-04-24 19:27:02 +0100
Processing by App::ThingsController#new as HTML
  Rendered app/things/_new_form.html.erb (2.0ms)
  Rendered app/things/new.html.erb within layouts/app (2.7ms)
  Rendered layouts/_app_includes.html.erb (11.0ms)
  Rendered app/nav/_things_new.html.erb (1.6ms)
  Rendered app/nav/_menu_wrapper.html.erb (2.1ms)
Completed 500 Internal Server Error in 21ms

ActionController::RoutingError (No route matches {:action=>"edit",title: nil,created_at: nil,updated_at: nil,account_id: nil>}):
  app/views/app/nav/_step_1_title.html.erb:2:in `_app_views_app_nav__step___title_html_erb__3644446743043796555_70280275307960'
  app/views/app/nav/_things_new.html.erb:1:in `_app_views_app_nav__things_new_html_erb__4471631226426153422_70280275315660'
  app/views/app/nav/_menu_wrapper.html.erb:8:in `_app_views_app_nav__menu_wrapper_html_erb___3003322303253991863_70280275346820'
  app/views/layouts/app.html.erb:32:in `_app_views_layouts_app_html_erb__4514085623626236526_70280285513740'


  Rendered /Users/blerg/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.6ms)

解决方法

我猜这不是导致问题的/ things / new路由本身.有一些东西被渲染(例如你的一个_nav菜单),其中包括使用nil或其他缺少的对象参数调用edit_app_thing_path.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读