问题标签 [rails-3-upgrade]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 如何在没有测试套件的情况下将 Rails 2.3 升级到 3.2(或 4.X)?
我们有 Rails 2.3.4(ruby 1.8.7) 应用程序,它很大吗?(300 个模型,21,000 LOC 和 75 个控制器,35,000 LOC),复杂度适中,我们计划将此应用程序升级到 Rails 3.2(或 Rails 4.X )
现在最大的障碍是我们没有一个测试用例!
我在网上搜索,stackoverflow,我确实找到了一些有用的链接,但他们都认为应用程序将具有良好的测试覆盖率但在我们的例子中它不是真的,所以考虑到所有这些,我有以下问题?
- 我应该升级哪个版本的 Rails 3.X(使用 ruby 1.9.3 或 2?)或 Rails 4.X 和 ruby 2?
- 每个人都建议采用增量方式(首先是 rails 3,然后是 ruby 1.9,然后是 rails 3.2,然后是 Rails 4)在我们的情况下这真的会有所帮助,因为
- 由于我们没有测试套件
- 由于它是一个大型应用程序,每次升级后都会进行大量手动测试,因此在每次升级后每次小的增量更改后重复测试(尽管更改是大测试只能进行一次)是正确的方法吗?
让我们假设即使我们现在编写测试用例(对于 rails 2.3)这些测试会在更新版本上顺利运行吗?还是我们需要在升级的 Rails 版本上编写新的测试用例?
我知道估算有点困难,但仍然有人尝试升级
您的大应用程序以及花费了多少时间?
考虑到上述所有因素,我们应该遵循哪些最佳策略?
欢迎任何指向相关博客和建议的指针。
提前致谢。
mysql - Mysql2::Error:'where 子句'中的未知列'6':SELECT
我正在将我的 Rails 应用程序从 Rails 2.3 升级到 3.2。我收到了这个奇怪的错误
Mysql2::Error: Unknown column '6' in 'where clause':
上述错误是由于 `(backtick) 应用于 where 子句中的数据以及列名,请参阅以下查询。
看到 6,即使它是数据 activerecord 正在应用反引号。因为 mysql 正在引发异常。
注意:这通常在调用相关对象时看到(一对一,多对多)
例如:
如果我重新启动该对象,它将正常工作。
这在整个应用程序和其他模型中都发生了,上面的代码片段只是一个例子。
环境细节:
操作系统:Ubuntu 13.10,Ruby 1.9.3-p545,Rails 3.2.17 mysql 5.5
有谁知道这里发生了什么?是因为宝石不兼容吗?如果您需要更多详细信息,请告诉我。
ruby-on-rails - 无法为 Massive Record 安装 rails 3.0
我正在尝试安装 rails 3.0 以与Massive Record Gem 一起使用。但是当我尝试安装时, gem rails -v 3.0.0 安装成功。但是,当我这样做rails -v
时显示错误:
/home/mayukh/.rvm/gems/ruby-2.1.2@global/gems/rubygems-bundler-1.4.4/lib/rubygems-bundler/noexec.rb:84:in
setup': undefined method
rubygems' for Bundler:Module (NoMethodError)
请在下面找到Ruby、Bundler 详细信息和错误详细信息:
ruby-on-rails - 我可以使用 Rails 3.2.3 更新到 Ruby 2.1.2 吗?
首先,我认为这不是 StackOverflow 上的禁止问题,因为它是一个关于环境的精确问题,一个客观问题。但如果禁止,请告诉我。
目前我正在开发一个使用Ruby 1.9.3
and的特定项目,Rails 3.2.3
目前我们无法升级到,Rails 4
因为项目依赖项。
我的问题是:
使用Rails 3.2.3,我们可以升级到最新的 Ruby 版本吗?如果是这样,什么版本:Ruby 2.0、Ruby 2.1.2还是其他版本?
另外,我在 Google 和 StackOverflow 上进行了搜索,但没有找到这样的问题。
谢谢!
ruby-on-rails-4 - 升级到 Rails 4 后 Create_association 不起作用
我们将 Rails 3.2 应用程序升级到 Rails 4,但我们遇到了一些问题。我有模型帐户和帐户设置:
当我创建帐户时
account = Account.create!(name: 'Test Account', ...)
就像我之前在 Rails 3 中所做的那样。我在 AccountSetting(行:self.create_settings)中缺少 account_id 时出错。所以我必须用
self.create_settings
至
self.build_settings.save
. 并且每次可以使用account.settings时都必须重新加载帐户,因为如果我不重新加载帐户,我的account.settings没有account_id。我不明白问题出在哪里,我在测试环境中与 FactoryGirl 有同样的问题。所有关联(feature_flags,qb_settings,...)都是同样的问题。
ruby-on-rails - NoMethodError:运行 unit/application_helper_test.rb 时未定义的方法“edit_detailed_reservation_path”
我们正在将2.3.18
应用程序迁移到3.2.x
. 我们在运行测试时遇到一个问题,它无法使用路由助手找到路由
这是我们面临问题的断言
这是该方法的定义方式ApplicationHelper
在运行测试时,我们收到以下错误
为了解决此错误,我还尝试将以下行放入 application_helper.rb
我们使用下面的命令来运行测试
在 Rails 2 中,edit_detailed_reservation_path
在 pry session 中检查时提供绝对 URL,但在 Rails 3 中同样不起作用。
请有人指导我们可能是什么问题以及如何解决它?
ruby-on-rails - 堆栈级别太深升级到 Rails 3
我正在将一个应用程序升级到 Rails 3,并且一直在逐步完成它,例如用 gemfile 中的相关 gem 替换所有旧插件。
但是,我似乎陷入了困境,因为现在每当我尝试运行服务器时,都会得到以下信息:
我已经用谷歌搜索了很长时间,得出的结论是它仍然是因为其中一个插件,我只是不知道是哪一个。我已经单独删除了每一个,但它们都没有任何区别。
我发现了这三个类似的问题,但它们并没有真正帮助我......
Ruby 1.9.2 中机架级别的 SystemStackError,而不是 1.8.7
我的 gemfile 目前看起来像这样:
我拥有的插件是:
- 作为最喜欢的更新
- act_as_configurable
- act_as_follower
- 更好的日志记录
- 关注于
- default_value_for
- 快速上下文
- 取器
- has_many_friends
- jrails
- 回形针
- 并行测试
- rails_upgrade
- yaml_db
有谁知道我该如何处理这个问题?:-(
ruby-on-rails - 从 rails 2 升级到 rails 3...sqlite3 数据库不再工作
我有一个 Rails 应用程序的代码,我正在从 Rails 2.3.12 更新到 Rails 3.0.3。当它仍然是 Rails 2.3.12 时,我已经设法让数据库正常工作,但是自从我升级 Rails 后,它似乎“丢失”了表,我不知道如何重新创建它们。
当我这样做bundle exec rake db:create
时,它说测试和开发数据库已经存在。
但是,当我这样做时,bundle exec rake db:migrate
它说
所有的迁移文件和架构都还在,但我不知道如何创建表?
编辑
跑步rake db:migrate --trace
给了我这个:
配置/环境.rb:
评论型号:
编辑
我已经删除了之前破坏它的 ActsAsCommentable,现在它在第 13 行(default_scope 顺序...)
ruby-on-rails - 自动将范围的旧语法转换为新语法
我正在升级旧代码,其中包含许多范围内已弃用的代码。例如:
应改为:
是否有一些解决方案可以自动将旧语法转换为新语法,或者开发人员每次手动更正它?
ruby-on-rails - 使用带有酪蛋白宝石的用户控制器 - 类的超级不匹配
我正在将应用程序升级到 Rails 3,这也意味着升级 gems。我升级了 gem 酪蛋白,但现在我无法运行我的测试,因为现在与我的用户控制器发生冲突,因为酪蛋白也有一个用户控制器(https://github.com/spoiledmilk/casein3/blob/master/app /controllers/casein/users_controller.rb)所以我得到这个错误:
我知道这意味着我必须重命名我的 UsersController (因此也要重命名 User 模型?)但我不知道最好的方法......
我正在考虑只更改控制器的名称(以及文件)以包含一个额外的“s”,即 UserssController
但我认为必须有更好的方法来避免这种冲突?!
如果这是唯一的方法,我是否还需要更改数据库中用户表的名称,还是仍然可以?- 如果我确实需要更改它,我该怎么做?