标签: ruby-on-rails-6

将Rails 5.2升级到6.0.0后的内存泄漏

有人经历过吗?我们将项目从Rails 5.2升级到Rails 6.0.0,此后,内存消耗猛增...在发行候选环境中,它可以正常工作,但是在生产中,容器因内存使用而死亡...实例我们在5.2中使用1GB RAM可以很好地完成工作,但是即使我们为它们提供4GB内存,我们测试Rails 6.0.0的实例也会立即死亡。

我们已经测试了https://github.com/schneems/derailed_benchmarks,但是要求的gem总数总共增加了10 MiB。

我们有一些繁琐的查询,但我们不知道为什么这会在Rails 6中而不是在Rails 5中发生。

ruby ruby-on-rails ruby-on-rails-5 ruby-on-rails-6

9
推荐指数
1
解决办法
103
查看次数

如何在Rails 6中使用茧形宝石

已经cocoon gem在Rails 4和Rails 5应用程序中用于嵌套表单。目前,我正在将rails 5.2应用程序之一(正在使用cocoon gem)更新为rails 6。

由于Rails 6使用的是webpacker,所以我厌倦了application.js像以前版本的rails一样要求文件中包含茧形javascript 。

app / javascript / application.js

//= require cocoon
Run Code Online (Sandbox Code Playgroud)

但是不幸的是,事情似乎没有用。也尝试过导入,但是由于茧不能作为javascript软件包使用,因此它当然也无法正常工作。

任何解决方案或替代方案?

ruby-on-rails cocoon-gem ruby-on-rails-6

9
推荐指数
1
解决办法
668
查看次数

Ruby 2.6.5 和 PostgreSQL pg-gem 分段错误

从控制台我无法执行任何涉及数据库的操作。我得到一个分段错误。

.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56: [BUG] Segmentation fault at 0x0000000000000110 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

它实际上是可能需要数据库的任何操作,包括 MyModel.new。

-- Control frame information ----------------------------------------------- c:0071 p:---- s:0406 e:000405 CFUNC :initialize c:0070 p:---- s:0403 e:000402 CFUNC :new c:0069 p:0016 s:0398 e:000397 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56 c:0068 p:0107 s:0393 e:000392 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/postgres

我已经卸载并重新安装了 pg gem。并重建了数据库。并重新启动 PostgreSQL。

我看到其他人在Puma下运行时报告问题,但我的配置在Puma下有效,在console下失败!

为清楚起见编辑:

是的,使用捆绑器。

使用相同的堆栈跟踪rails cbundle exec rails c具有相同的效果(段错误)启动 rails 控制台。

Gemfile.lock 有 pg (1.1.4)

我重新捆绑,指定捆绑路径。堆栈跟踪现在具有该捆绑路径,因此我猜默认情况下捆绑程序使用的是 rbenv 路径。

ruby postgresql ruby-on-rails-6

9
推荐指数
1
解决办法
2708
查看次数

我应该如何在 Rails 6 中重新启动 spring

我正在阅读使用 Rails 6进行敏捷 Web 开发这本书,我在“迭代”结束时完成了并且bin/rails test在固定装置的某个地方得到了一个可怕的长而丑陋的转储。(我对 Rails 并不陌生……只是想赶上 Rails 6 中的所有新玩具并刷新)。

我确保我的所有代码都与示例代码匹配,然后最终ps -ef | grep -i spring找到了三个进程——24 小时前的一个。我用 just 杀了他们,kill <pid>然后照做了bin/rails test,一切都很好。

我意识到“理论上”我不需要告诉spring重启,但显然有时你会这样做。那么,规定的重启方法是spring什么?

spring ruby-on-rails ruby-on-rails-6

9
推荐指数
1
解决办法
7247
查看次数

JSON 解析器错误 783:用于 params 的意外标记

我正在编辑资源 - @article- 每当我提交它时,我都会收到以下错误:

JSON::ParserError in ArticlesController#update
783: unexpected token at '#<ImageUploader::UploadedFile:0x00007fb154adb508>'
Run Code Online (Sandbox Code Playgroud)

它突出显示了这一行:

  if @article.update(article_params)
Run Code Online (Sandbox Code Playgroud)

这是我的Article#Update操作中的正常 Rails 样板代码:

  def update
    respond_to do |format|
      if @article.update(article_params)
        format.html { redirect_to @article, notice: 'Article was successfully updated.' }
        format.json { render :show, status: :ok, location: @article }
      else
        format.html { render :edit }
        format.json { render json: @article.errors, status: :unprocessable_entity }
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

这是服务器日志的完整输出(包括参数):

Started PATCH "/articles/welcome-to-ftja" for ::1 at 2020-05-04 02:11:43 -0500
Processing by ArticlesController#update as HTML
  Parameters: …
Run Code Online (Sandbox Code Playgroud)

json simple-form trix ruby-on-rails-6 ruby-2.7

9
推荐指数
1
解决办法
5633
查看次数

模型关联问题:NoMethodError: #&lt;Hash...&gt; 的未定义方法“扩展”

我目前正在按照升级指南将 Rails 5.2 应用程序升级到 Rails 6.0。

一切似乎都工作得很好,直到我的用户类之一(标签或艺术家)与链接模型交互时遇到错误。

当我尝试以艺术家或厂牌身份注册时,当我需要定义指向用户社交媒体或网站的链接时,我收到以下错误:

Completed 500 Internal Server Error in 139ms (ActiveRecord: 7.3ms | Allocations: 14518)

    NoMethodError - undefined method `extensions' for #<Hash:0x000000000bdd4ec8>
    Did you mean?  extend:
      app/controllers/label/personal_informations_controller.rb:8:in `edit'
Run Code Online (Sandbox Code Playgroud)

这是我的个人信息控制器:(错误位于第 8 行,我将对其进行标记,以便清楚地显示)

class Label::PersonalInformationsController < LabelController
  layout "signup"
  skip_before_action :ensure_approved

  def edit
    prepare_country_options
    @label = current_label
    @label.links.build(links_attributes) #***ERROR OCCURS HERE***#
  end

  def update
    @label = current_label
    if @label.update_attributes(label_params)
      redirect_to edit_label_genres_path
    else
      update_error
    end
  end

  private

  def update_error
    prepare_country_options
    @label.links.build(links_attributes)
    render :edit
  end

  def label_params
    params.require(:label).permit(:logo, …
Run Code Online (Sandbox Code Playgroud)

controller model ruby-on-rails ruby-on-rails-6

9
推荐指数
2
解决办法
1437
查看次数

如何在Rails 6 Webpacker中添加jQuery第三方插件

我知道它很简单,但是随着rails 6的更新。rails6中有新的语法来管理由webpacker维护的javascript资产。

//application.js
require("@rails/ujs") //.start()
require("turbolinks").start()
require("@rails/activestorage").start()
require('jquery').start()
require('jquery_ujs').start()
require('bootstrap-daterangepicker').start()
require("custom/custom").start()
require("bootstrap").start()
require("channels")
Run Code Online (Sandbox Code Playgroud)

我能够添加,custom/custom但引导程序和jquery无法正常工作我已经通过npm安装了jquery和引导程序

javascript ruby-on-rails webpacker ruby-on-rails-6

8
推荐指数
2
解决办法
3059
查看次数

Rails 6 ActionText在Heroku上不起作用(未定义的方法'rich_text_area_tag')

我正在使用ActionText编辑一个段落,并且该段落在本地完美运行,但是当我将其部署到Heroku时,页面的格式为rich_text_area,即使我遵循了rails指南,也会抛出一个错误,提示未定义的方法rich_text_area_tag。我以为我需要在生产中配置Active Storage,但事实并非如此。

这是我在Heroku的日志中得到的信息: ActionView::Template::Error (undefined method 'rich_text_area_tag' for #<#<Class> Did you mean? rich_text_area)

<%= f.label :something, class:'label' %>
<%= f.rich_text_area :something %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku ruby-on-rails-6 actiontext

8
推荐指数
1
解决办法
294
查看次数

在 Rails 6 上定义 secret_key_base 的正确方法是什么?

secret_key_base既然我们拥有每个环境的凭据,那么在 Rails 6上定义的正确方法是什么?

我的环境有这个变量,SECRET_KEY_BASE但 Rails 没有找到它。我尝试定义secret_key_baseconfig\credentials\production.yml.enc但它对Rails.application.credentials.secret_key_base

我知道config/secrets.yml

staging:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)

有效,但是,那是 Rails 6 的方式吗?

ruby-on-rails ruby-on-rails-6

8
推荐指数
1
解决办法
4615
查看次数

有什么办法可以在 Rails 6 中禁用动作文本的图像/附件部分吗?

我们有办法禁用操作文本的附件吗?类似于下面的 has_rich_text :content,attachment: false

这样,我们就可以从数据库中删除 active_storage_blobs、active_storage_attachments 表。在这种情况下,只有 action_text_rich_texts 表才能满足目的。

rich-text-editor rails-activestorage ruby-on-rails-6 actiontext

8
推荐指数
2
解决办法
1517
查看次数