问题标签 [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 投票
0 回答
17 浏览

ruby-on-rails - 在 Rails 7 和 importmaps 下增量开发 javascript 功能

有几个库是 Rails 7 下测试的重点(例如 zxing、flatpickr)。但是为了建立一个操作程序,有几个问题需要明确。

importmap 路由是首选路由。
但是,文档似乎(仅?)指向固定过程,有两个选项:选择 cdn 和在--download本地提供版本的选项。但是,如果一个人已经有一个 js 文件可以使用 - 可以将它集成到流程中吗?

同样,应该如何处理内联 javascript - 作为一个过程,我发现最好先从内联块开始,然后再将它们移动到控制器(如果有必要的话)。这可以实现吗?是否需要任何声明?

内联使用的示例脚本(当然是 jquery 语法),其中“定制”部分是与其相关的部分formData,可能仅在一页或两页上调用。

0 投票
2 回答
52 浏览

ruby-on-rails-7 - Ruby On Rails 7.0 无效?在控制台中设置为 true 但不在视图中

我试图避免为@post 更新一个空名称。我是 RoR 的初学者,我不明白为什么在终端我得到了@post.invalid? => true,但在我看来edit.html.erb @post.invalid? => false

post_controller.rb

post.rb

编辑.html.erb

我很困惑,有人有想法吗?

0 投票
1 回答
27 浏览

ruby-on-rails - 在 Windows 10 上进行 Rails 7 系统测试 - 证书验证失败

在 Windows 10 上,使用新的 Rails 7 应用程序和空的系统测试,当我运行系统测试时:

rails test test/system/empty_test.rb,我收到以下错误:

我不确定代码在寻找什么证书,它只是一个新站点,我从 localhost:3000 本地访问它。

这是空系统测试的代码:

我使用空测试只是为了确保不是测试代码导致了错误。

这是我的问题:

  1. Rails 系统测试正在寻找哪个证书?
  2. 我该如何解决?
0 投票
1 回答
56 浏览

ruby-on-rails - javascript_importmap_tags:“未定义的方法`start_with?' 对于零:NilClass”

在 rails 7 中,我设置了一个 javascript 文件,如下importmap.rb所示:

pin "best_in_place", to: "./vendor/gems/best_in_place-3.1.1/lib/assets/javascripts/best_in_place.js"

这包含在 application.js 中import "best_in_place"

但是,它似乎没有找到该文件。它返回:

从包含<%= javascript_importmap_tags %>在我的 application.js 中的行中,这与应用程序在根本找不到任何文件时给出的错误相同。

0 投票
2 回答
341 浏览

ruby-on-rails - libffi.so.8:无法打开共享对象文件

我将 Rails 升级到 7.0.1。当我这样做时rails g controller Pages home,它给出了错误:

知道如何解决这个问题吗?

0 投票
1 回答
63 浏览

ruby-on-rails - Rails turbo_frame 未被识别

使用 Rails 7 turbo 流作为完全替代品的上下文测试 rails-ujs 功能。
类嵌套结构如下:

一页文章可能会创建caritems,每篇文章一个。
每篇文章都需要可创建、可更新、可删除(因此可以为不断改变主意的用户重新创建)。
因此,该页面对每篇文章都有一个块

部分然后调用涡轮帧:

呈现的 HTML 确实调用了 dom_ids 并按预期呈现:

控制器:

如果@cartitem 有效,则进程运行并按预期呈现:

但是,在使用空值提交时,为了测试验证,会出现意外结果:

正如预期的那样,事务回滚。但是,响应是不可处理的实体。
并且返回不是create.turbo_stream.erb声明要做的,即如果 caritem 为 nil 则重新渲染部分。
*注意:elserespond_to 块的部分在引用和不引用 turbo_stream 的情况下都进行了尝试,结果相同。

相反,返回的xhr响应是在开发模式下返回的错误的 HTML 页面。

浏览器控制台还抱怨

这是不真实的,因为 HTML 仍然挥之不去: <turbo-frame id="article_1"></turbo-frame>

需要做些什么来正确处理错误,将表单部分呈现在正确识别的位置?

0 投票
1 回答
106 浏览

ruby-on-rails - 将 rails 升级到 7.0.1 时 STI_preload 突然出现“未初始化的常量 PurIssue”错误

我正在将一个大约 2 岁的 Rails 应用程序从 6.1 升级到 7.0.1

我有一个 STI 设置,其中 Pursuit 是主要类,它还有其他几种类型作为后代:

后代类都看起来像这样:

--

--

我一直在使用Ruby Guides 推荐的STI 预加载片段,并且在 Rails 6.0 和 6.1 下都运行良好。

但是现在我正在升级到 Rails 7.0.1,我突然只收到 PurIssue子类的“未初始化常量”错误,而所有其他子类加载正常:

我似乎无法弄清楚为什么 PurIssue 将不再加载,而所有其他子类都会。这破坏了我的整个应用程序,因为 PurIssues 是最重要的数据点。

有人可以指出可能导致这种不同行为的 6.0、6.1 和 7.0 之间的 Rails 配置更改吗?

顺便说一句,Zeitwerk 显示了同样的错误:

0 投票
1 回答
20 浏览

ruby-on-rails - Rails 7 collection_check_boxes 未在编辑视图中显示选中的项目

根据这个线程,我试图让我的代码显示在您显示编辑视图时已经检查了哪些项目。所有其他字段均已预先填充。

这是我目前的方式:

我需要调用 include_hidden: false 否则数组包含一个空白项作为数组中的第一个。

这是它所指的辅助方法:

与其他线程不同的是,我使用辅助方法来调用项目集合,而其他线程正在调用数据库中的对象集合。所以我不确定我应该如何首先获得身份证。

@member.pronouns 是一个包含数组的字符串(我正在使用 PostgresQL),所以首先我需要将它转换为我假设的数组,因为我在其他地方阅读,然后我可以调用它的 map。但是虽然 .map(&:itself) 没有返回任何错误,但在呈现编辑视图时不会检查代词字符串中列出的项目。

有任何想法吗?

0 投票
1 回答
24 浏览

ruby-on-rails - 将淡入淡出设置为 turbo_stream

Rails UJS 有一个紧凑性。在js.erb文件的单行中,调用 dom_id,部分 AND 给它一些交互(以极简主义的方法确认对象的变化)。调用 jQuery 库的示例。

为了消除 UJS 和对 jQuery 的依赖,在 turbo 流上的
vanilla JS 中实现等价物的最简洁的方法是什么?.fadeTo('slow',1)

0 投票
1 回答
109 浏览

ruby-on-rails - Sprockets 没有获取 app/assets/builds 文件夹 Rails 7

我只是设置了一个空的 Rails 7.0.1 项目并向其中添加 Docker 文件,当命令rake assets:precompile运行时它不包括文件夹内的app/assets/builds文件。

有谁知道我做错了什么?

应用程序/资产/配置/manifest.js

应用程序/资产/配置/manifest.js

** 输出 **

PS:我正在使用生产环境并且也在rake assets:precompile本地运行,包括构建文件夹的内容。