问题标签 [ruby-on-rails-7]

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 投票
2 回答
1240 浏览

ruby-on-rails - Rails 7.0 + esbuild:运行应用程序给出错误:找不到命令“build”

新生成的 Rails 7.0 启动时出现 esbuild 选项错误。

在创建一个新的 rails 7 项目时,我尝试使用bin/devwhich uses now uses foreman 启动应用程序。但是,它会因“找不到错误命令“build”而出错。

0 投票
0 回答
22 浏览

ruby-on-rails - 多个表内多个字段的Rails多态关联?

我有一个应用程序,其中许多表中的许多字段都可以附加一个文件。

是否可以创建一个自定义的多态关联,从而一个表不仅连接到另一个表和记录 ID,还连接到该表内的字段?

例如:

我正在考虑创建这个:

attachable_field将是一个字符串,其中包含表 1 的“field_1”和“field_3”以及表 2 的“field_1”。然后将使用.send.

这种方法是否有意义,或者是否有我不知道的“Rails 方式”?

0 投票
3 回答
381 浏览

turbo - 为什么 Turbo 不尊重 link_to 方法: :post?

长期以来,Railsmethod: :post在 helper 中提供了一个选项link_to:当给出选项时,Rails 会拦截点击并发出 POST 请求,而不是默认的 GET 请求。

然而,由于一些未知的原因,这在 Rails 7 中不起作用:尽管添加method: :post到我的link_to助手,Rails 发送了一个 GET 请求(不是一个 POST 请求)。我认为 Turbo 应该会处理它,但它似乎没有发生。

这是您可以复制的非常简单的步骤:

现在localhost:3000/books从您的网络浏览器访问,然后单击第二个“新书”链接。我希望得到一个错误(毕竟,我没有配置正确的 POST 路由),但不幸的是,Rails 发出 GET 请求 - 而不是 POST 请求,因为它应该有:

为什么会这样?Turbo 不应该拦截链接,并且像 Rails UJS 过去所做的那样,发送 POST 请求吗?

0 投票
1 回答
4429 浏览

ruby-on-rails - Rails 7 Ruby 3.1 LoadError:无法加载此类文件--net/smtp

我升级到 Rails 7 和 Ruby 3.1。在尝试运行测试时rspec,出现以下错误。我该如何解决?

0 投票
0 回答
15 浏览

ruby-on-rails - 如何在 Rails 7 的 URL 参数中允许一个点?

我正在使用典型的 Rails 资源路线:resources :wallets

这通常会产生/wallets/123.

而不是123我想像这样传递一个带有点的字符串:/wallets/example.eth

但目前,Rails 似乎从点和之后删除了任何内容。

我怎样才能确保整个example.eth通过到params[:id]

0 投票
1 回答
609 浏览

ruby - rails new 创建 Rails 7.1-alpha 而不是 Rails 7.0

我只是想知道。我想创建一个新的 rails 应用程序并在我的 linux 系统上进行以下设置:

  • ruby 3.0.3 通过 RVM
  • 纱线 v1.22.17

如果我通过创建一个新应用程序

使用 Rails 7.1.0.alpha 代替 Rails 7.0

在创建的 Gemfile 中列出了以下版本:

发生这种情况的任何原因以及如何获得 rails 7.0.0

0 投票
0 回答
152 浏览

ruby-on-rails - 我看到 turbo_stream_from 在升级到 7.0.0 的现有 rails 应用程序上不起作用

这个app之前没用过action cable或者redis,今天从5.0升级到rails 7.0.0turbo_stream_from第一次尝试。

它看起来像在 Rails 控制台上工作,因为我看到Turbo::Streams::ActionBroadcastJob在创建记录时正在排队并执行。但

我生成了一个示例 7.0.0 应用程序并试图找出差异。我添加了两个文件app/channels/application_cable/channel.rbapp/channels/application_cable/connection.rb. 我有config/cable.yml如下

旧应用程序是否需要任何其他设置?我希望有rails actioncable:install。我还在学习中,请帮助。啊,对于示例应用程序,我关注了一个视频https://www.youtube.com/watch?v=mpWFrUwAN88

0 投票
2 回答
230 浏览

ruby-on-rails - Ruby on Rails 7 - js.erb 文件未运行

我目前遇到“like.js.erb”文件未运行的问题。可以看到GET请求成功,响应是代码,但是js.erb代码没有运行。我放了一个简单的“console.log(“hello”)”,它也没有运行。任何帮助将不胜感激

/controllers/likes_controller.rb

likes_controller.js

/views/posts/like.js.erb

0 投票
1 回答
157 浏览

ruby-on-rails - Rails 7 - ActiveSupport::MessageEncryptor

我将我的应用程序升级到 Rails 7(从 Rails 6.1)并遇到了一个问题。

我使用 ActiveSupport::MessageEncryptor 加密了一些数据字段。我有我的代码在下面加密和解密。

创建新记录时没有问题。这些值是加密的。然后当我查看记录时,这些值被解密。

问题是我无法查看在升级到 Rails 7 之前创建的任何记录。decrypt_and_verify 方法抛出 ActiveSupport::MessageEncryptor::InvalidMessage

请注意,ENV 值 KEY_GENERATOR_SECRET 和 KEY_GENERATOR_SALT 没有改变。

我未能测试解密旧记录并认为我很好 - 所以我已经推动生产(在 Heroku 上)。此问题存在于开发、测试和生产中。美好时光。

谢谢你的帮助,查理

0 投票
0 回答
46 浏览

ruby-on-rails - Rails 7.0 回调和类继承

我有仅适用于子类的回调,但是当我为同级类创建新记录时(两者共享相同的父类)...... child1 的 after_commit 回调正在为 child2 调用,但方法丢失错误。

知道什么会导致这种情况吗?

例如,如果创建了 WarehouseGroup 记录,它会从 WarehouseFile 模型调用 f​​ile_upload_triage 方法。发生这种情况是因为 Parent 类上的 self.inherited 方法吗?如果是这样,您如何为 STI 设置创建单个路由?

家长

第一个孩子

第二个孩子