【发布时间】:2012-08-02 03:05:38
【问题描述】:
生命体征:
- ruby 1.9.3p194(2012-04-20 修订版 35410)
- [i686-linux] Rails 3.2.7
- 设计 2.1.2
GET /users/sign_in 正在尝试重定向到错误的控制器。它已停止重定向到 wecome#welcome(有效),ans 现在正在重定向到 devise/welcome#welcome,它不存在并导致重定向时出现 500 错误,并记录以下错误:
ActionController::RoutingError (没有路由匹配 {:controller=>"devise/welcome", :action=>"welcome"}):这是最近开始的,似乎是由一系列 gem 更新中的某些东西引起的。它曾经完美地工作。
有谁知道为什么这会开始失败(即哪个 gem 的哪个更新)或者我能做些什么?
编辑:
这是来自 routes.rb 的根路由:
root :to => "welcome#welcome"
我回滚到之前的部署,并且该应用再次运行。部署在 Rails 3.2.7 之前。
宝石文件:
source 'http://rubygems.org'
gem 'rails', '~> 3.2.1'
gem 'rake'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'pg'
gem 'devise', '~> 2.1.0'
gem 'devise-encryptable', '~> 0.1.1'
gem 'devise_invitable', '~> 1.0.0'
gem 'haml', "~> 3.1.6"
gem "rdiscount", "~> 1.6.8"
gem 'markaby'
gem 'foreigner', "~> 1.1.5"
gem 'ancestry'
gem 'acts_as_list'
gem 'dynamic_form'
gem 'friendly_id', "~> 4.0.0"
gem 'net-ssh', :git => 'git://github.com/nessche/net-ssh.git'
group :assets do
gem 'sass-rails', "~> 3.2.3"
gem 'coffee-rails', "~> 3.2.1"
gem 'uglifier', "~> 1.2.3"
end
gem 'therubyracer', "~> 0.10.1"
gem 'jquery-rails', "~> 2.0.1"
gem 'newrelic_rpm', "~> 3.3.1"
gem "marginalia", "~> 1.1.0"
group :development do
gem 'capistrano', "~> 2.12.0"
gem 'rvm-capistrano'
# gem "mail_view", "~> 1.0.1", :git => 'https://github.com/37signals/mail_view.git'
# gem 'rails_admin'
gem 'rails-footnotes', '>= 3.7.5.rc4'
gem 'annotate', '~> 2.4.0'
end
# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :development, :test do
gem 'webrat'
gem 'rspec'
gem 'cucumber'
gem 'gherkin'
gem 'spork'
gem 'spin'
gem 'capybara'
gem 'sqlite3'
gem 'nifty-generators'
gem 'mocha'
end
编辑:2012-08-27 -
设计 2.1.2 + 轨道 3.2.6 + 旅程 1.0.3 = 工作。
设计 2.1.2 + 轨道 3.2.6 + 旅程 1.0.4 = 失败。
设计 2.1.2 + 轨道 3.2.7 + 旅程 1.0.4 = 失败。
设计 2.1.2 + 轨道 3.2.8 + 旅程 1.0.4 = 失败。
Rails 3.2.7 和 3.2.8 是安全版本,需要旅程 1.0.4。这让我陷入了困境,直到我可以修复旅程。
【问题讨论】:
-
你能发布一些代码吗?我的第一个猜测是你没有回家路线设置。另外,什么版本的 Rails?
-
嗯。奇怪的。我在 3.2.6 上,它工作正常。可能与3.2.7有关。您能否也发布您的 Gemfile 以查看您正在使用的其他宝石?可能是另一个有冲突的宝石,但我对此表示怀疑。
-
是的。在我回滚后,我的产品没有出现这个问题,还有另一个问题。奇怪的是,在我的开发箱上检查了相同的分支后,问题仍然存在。所以我非常确信这是宝石相互作用。我想我需要开始创建一些 gemsets/bundles 并退出每个更新和提交,直到设计再次工作......
-
嗯。你不需要 rake 在你的 Gemfile 中,因为 rails 会安装它需要的版本。这实际上可能是你的问题,因为 rake 有一个更新的版本。尝试将您的 Rails 版本更改为 3.2.6,从 Gemfile 中删除
gem 'rake'并执行bundle update rails -
今晚试试..谢谢..
标签: ruby-on-rails ruby devise journey