问题标签 [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.
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
命令工作正常。
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,所以我对配置不是特别熟悉。也许我需要在我的应用程序中更改配置文件?
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
:
ruby-on-rails - jquery_datepicker 不适用于 Rails 4
有关示例项目,请参见以下 repo:https ://github.com/aarona/date_picker
起初我认为问题是由于模型是无表的,但是当通过迁移将它与数据库关联时,我仍然得到一个错误:
wrong number of arguments (1 for 0)
在这条线上:
delete
如果模型是无表的,我会收到关于找不到方法的错误。
ruby-on-rails - Rails 4 升级抛出 InvalidAuthenticityToken
我的应用程序刚刚升级到 Rails 4,我们开始看到随机的 InvalidAuthenticityToken 错误。我做了一堆调查,但还没有找到解决方案。任何人都知道发生了什么以及如何解决它?
指出出现在其他类似 SO 问题中但不适用于我的事情:
我们protect_from_forgery with: :exception
在 ApplicationController 中调用,但我们也在 Rails 3 中这样做并且没有出现此错误。
我已确认这些是以标准方式使用网站的普通用户;这些不是 CSRF 尝试。
这些不是 API 调用,它们是标准的 Web 表单提交。
真实性令牌存在于表单(通过 Railsform_for
或form_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,我无法在本地复制。
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 调用。如果我记下其中两个电话,那么该电话每次都有效。如果我只指出一个,所以我们有两个调用,那么它会失败一个或两个调用。我在其中一个电话上收到“待处理”消息。
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 等。
ruby-on-rails - Rails 4.2:如何禁用 cookie 加密
我最近将我的 rails 3.2 应用程序升级到 rails 4.2。我面临新 Rails 4.2 设置的 cookie 已签名和加密的问题,我不会这样做,因为我的应用程序与其他 rails 3 应用程序交互。我想在 4.2 中重新引入创建 cookie 的旧方法。
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
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 调用该行: