问题标签 [rails-4-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.

0 投票
1 回答
738 浏览

ruby-on-rails - 加强全球环境任务轨道

在我要从 升级Rails 3.2.22.4到的应用程序中Rails 4.0.13,以下用于增强全局环境任务的代码块已成为障碍,因为它无法在目标 Rails 版本上运行:

这在 . 上工作正常3.2,但Don't know how to build task 'environment'4.0.

在 3.2 中,Rails.application.class.rake_tasks返回一个Proc object( [#<Proc:0x007f978602a470@.../lib/rails/application.rb:301>]) 指向rails 代码库中的这一行。在 4.0 上,它返回一个空数组。

上面提到的那一行Proc object似乎在这个 commit中被删除了。

environment增强rake 任务的首选方法是Rails 4.x什么?

上面的代码在lib/subdomain/rake.rb文件中,它包含在以下代码中lib/subdomain/engine.rb

由于命令失败并出现此错误,因此无法执行 Rake 任务。rails server|console命令工作正常。

0 投票
1 回答
459 浏览

ruby-on-rails - 从 Ruby on Rails 4.2.7.1 升级到 5.0.1——仍然尝试使用 railties 4.2.7.1

我正在创建一个网站,但不小心安装了 Ruby on Rails 版本 4 而不是版本 5,我想升级到最新版本,以便使用我系统上的版本中当前缺少的一些功能。

我已尝试遵循本指南:

http://railsapps.github.io/updating-rails.html

rvm按顺序安装并运行了所有预备程序,直到本节:

我遇到问题的地方。rvm use ruby-2.3.1@rails5.0 --create输出:

美好的。Gem install rails安装所有 36 个 gem,包括,关键是:

但是,当我rails -v之后直接运行时,我得到:

但是,当我运行bundle install时,系统会恢复到 rails 4.2.7.1。

我是否需要做一些额外的事情来安装/链接/任何 railties 4.2.7.1,并阻止系统恢复到原始版本的 rails?我不太使用rails,所以我对配置不是特别熟悉。也许我需要在我的应用程序中更改配置文件?

0 投票
1 回答
292 浏览

ruby-on-rails - Rails 从 arel 升级到 4.2 Stack too deep 错误

我正在进行 Rails 升级,并且能够成功升级到4.1.16

现在跳转到4.2... 能够成功运行bundle update,但是当我尝试运行我的规范时,我得到了SystemStackError如下所示的不足:

我正在尝试找出这里需要更改/更新的内容,谢谢。

PS:Ruby版本是2.2.3

#Update: 我在之前的堆栈跟踪中犯了一个错误,是错误的,我现在已经更新了。

#Update(03/16): 这似乎是由设计引起的......我设法将错误追溯到以下行config/initializers/devise.rb

0 投票
1 回答
34 浏览

ruby-on-rails - jquery_datepicker 不适用于 Rails 4

有关示例项目,请参见以下 repo:https ://github.com/aarona/date_picker

起初我认为问题是由于模型是无表的,但是当通过迁移将它与数据库关联时,我仍然得到一个错误:

wrong number of arguments (1 for 0)

在这条线上:

delete如果模型是无表的,我会收到关于找不到方法的错误。

0 投票
0 回答
240 浏览

ruby-on-rails - Rails 4 升级抛出 InvalidAuthenticityToken

我的应用程序刚刚升级到 Rails 4,我们开始看到随机的 InvalidAuthenticityToken 错误。我做了一堆调查,但还没有找到解决方案。任何人都知道发生了什么以及如何解决它?

指出出现在其他类似 SO 问题中但不适用于我的事情:

我们protect_from_forgery with: :exception在 ApplicationController 中调用,但我们也在 Rails 3 中这样做并且没有出现此错误。

我已确认这些是以标准方式使用网站的普通用户;这些不是 CSRF 尝试。

这些不是 API 调用,它们是标准的 Web 表单提交。

真实性令牌存在于表单(通过 Railsform_forform_tag生成)和提交的请求中。

我的会话不应该设置过期时间,因为我没有设置过期时间,而且 Rails 默认是永久的,而且我的用户不经常登录或退出(所以过期的令牌不太可能,就像“打开一个选项卡,登录到单独的选项卡,返回打开标签并尝试操作”)。

生成与我的csrf_meta_tag表单相同的令牌并删除它没有帮助。

我的用户确认他们至少在 Firefox、Chrome 和 Safari 上体验过这种情况。

所有代码都可以在 Github 上找到。

可能相关:如果我secret_key_base在 secrets.yml 中更改我的开发并更改我的session_store.rb文件以使用: Rails.application.config.session_store :cookie_store, key: '_glowfic_constellation_' + Rails.env, domain: 'glowfic.com', tld_length: 2并重新启动服务器,我将注销并且可以在尝试登录时 100% 可靠地遇到此错误。

编辑调出更多的东西:

我无法强制清除所有会话,因为我使用 cookie 存储,但是我已经在生产中重置了 secret_key_base 和 cookie 名称,这(很难说,但我认为)有帮助吗?但没有解决问题。

“可能相关”似乎无关,并且与不支持“localhost”的域“glowfic.com”相关;如果我改用域 localhost,我无法在本地复制。

0 投票
1 回答
204 浏览

ruby-on-rails - Rails 4.0 PG::UnableToSend 套接字未打开

我目前正在尝试将 Rails 3.2 应用程序升级到 Rails 4.0.13(ruby 2.3.5,PostgreSQL 9.4.13),运行集成测试时出现此错误;

此集成测试登录,然后来自前端(AngularJS)的许多调用以获取当前选择的公司等详细信息。这些调用中的每一个都会收到相同的消息,就像连接已关闭一样。我在 LIVE 模式下通过 selenium 和 capybara 使用 chrome 浏览器,所以我可以看到发生了什么。

这是我用于测试的 database.yml 文件

这是它从前端发出的调用

AngularJS

导轨控制器

当用户登录时,有 3 个单独的调用来获取不同的数据,有时在测试中它会得到 1 或 2 个,但不会得到三个。

我尝试了http://www.ruby-railings.com/en/rails/postgresql/2014/01/11/connection-problems-in-rails-4.html的工作。这根本没有解决问题。

更新

当用户登录时,AngularJS 向 Rails 后端发出了三个 http 调用。如果我记下其中两个电话,那么该电话每次都有效。如果我只指出一个,所以我们有两个调用,那么它会失败一个或两个调用。我在其中一个电话上收到“待处理”消息。

0 投票
1 回答
282 浏览

jruby - 在tomcat中调试JRuby机架运行时错误

我们最近将旧的 Rails 应用程序从 rails 3 升级到了 4.2,以及许多其他 gem 更新。现在我无法让我的 rails 应用程序加载任何页面。我们使用的是 JRuby 9.1.0.0,但升级到了 9.1.8.0。但是,我在两个版本上都遇到了同样的问题。

一旦我们用最新的启动tomcat .war,它就会一直运行,直到我看到INFO: Server startup in 1234ms消息。我已经在我的 rails 环境/初始化程序文件中添加了一些调试语句来跟踪它,并且它正在触及它们中的每一个。因此,一旦我看到来自 tomcat 的启动消息,我认为它会没事的。但是,它立即多次吐出以下消息:

DEBUG: resetting rack response due exception

每次我加载一个 URL 时,它也会在我的日志中显示该消息。

我看到它来自这个 jruby-rack 类,但我不知道如何进一步调试或排除故障。

我假设我的配置中的某些东西导致了问题,或者某个类/模块以某种方式使其短路,但我不确定如何识别它是哪一个或隔离问题。

有谁知道获取更详细日志的方法或找出问题所在的方法?

如果有帮助,很高兴发布任何配置/gemfiles 等。

0 投票
1 回答
643 浏览

ruby-on-rails - Rails 4.2:如何禁用 cookie 加密

我最近将我的 rails 3.2 应用程序升级到 rails 4.2。我面临新 Rails 4.2 设置的 cookie 已签名和加密的问题,我不会这样做,因为我的应用程序与其他 rails 3 应用程序交互。我想在 4.2 中重新引入创建 cookie 的旧方法。

0 投票
3 回答
1079 浏览

ruby-on-rails - 将 Rails 4.2 更新到 5.0.0 & sqlite3 gem 不会加载

运行时rails server,我加载此警告:

Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

然而我的 gemfile 有 gem

是什么导致了这个错误?

从这里使用 Rails 更新说明https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-4-2-to-rails-5-0

0 投票
1 回答
635 浏览

ruby-on-rails - 更新了 gem,现在出现错误:ActionView::Template::Error(参数数量错误(2 比 1)):

尝试将项目从 Rails 3.2 更新到 Rails 4.0。在更新了一些 gem 之后,我遇到了一些错误和弃用,例如在运行“rails s”时使用哈希调用 #scope。修复后,“rails s”可以工作,但是当我尝试去 localhost 测试我的 webapp 时,我收到了这个错误:

这是 'latest_updates_list' 方法:

这是 'latest_updates_list' 中的第 33 行:

这是我的 Gemfile.lock

我相信这一定是一个 gem 问题,因为它以前工作过,而且我没有更改这些文件中的任何内容。

这是我更新的宝石的副本:

这是我使用 binding.pry 打印出“client_ids”时得到的结果:

如果我使用 pry 调用该行: