问题标签 [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.
ruby-on-rails - 在 Rails 7 和 importmaps 下增量开发 javascript 功能
有几个库是 Rails 7 下测试的重点(例如 zxing、flatpickr)。但是为了建立一个操作程序,有几个问题需要明确。
importmap 路由是首选路由。
但是,文档似乎(仅?)指向固定过程,有两个选项:选择 cdn 和在--download
本地提供版本的选项。但是,如果一个人已经有一个 js 文件可以使用 - 可以将它集成到流程中吗?
同样,应该如何处理内联 javascript - 作为一个过程,我发现最好先从内联块开始,然后再将它们移动到控制器(如果有必要的话)。这可以实现吗?是否需要任何声明?
内联使用的示例脚本(当然是 jquery 语法),其中“定制”部分是与其相关的部分formData
,可能仅在一页或两页上调用。
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
我很困惑,有人有想法吗?
ruby-on-rails - 在 Windows 10 上进行 Rails 7 系统测试 - 证书验证失败
在 Windows 10 上,使用新的 Rails 7 应用程序和空的系统测试,当我运行系统测试时:
rails test test/system/empty_test.rb,我收到以下错误:
我不确定代码在寻找什么证书,它只是一个新站点,我从 localhost:3000 本地访问它。
这是空系统测试的代码:
我使用空测试只是为了确保不是测试代码导致了错误。
这是我的问题:
- Rails 系统测试正在寻找哪个证书?
- 我该如何解决?
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 中的行中,这与应用程序在根本找不到任何文件时给出的错误相同。
ruby-on-rails - libffi.so.8:无法打开共享对象文件
我将 Rails 升级到 7.0.1。当我这样做时rails g controller Pages home
,它给出了错误:
知道如何解决这个问题吗?
ruby-on-rails - Rails turbo_frame 未被识别
使用 Rails 7 turbo 流作为完全替代品的上下文测试 rails-ujs 功能。
类嵌套结构如下:
一页文章可能会创建caritems,每篇文章一个。
每篇文章都需要可创建、可更新、可删除(因此可以为不断改变主意的用户重新创建)。
因此,该页面对每篇文章都有一个块
部分然后调用涡轮帧:
呈现的 HTML 确实调用了 dom_ids 并按预期呈现:
控制器:
如果@cartitem 有效,则进程运行并按预期呈现:
但是,在使用空值提交时,为了测试验证,会出现意外结果:
正如预期的那样,事务回滚。但是,响应是不可处理的实体。
并且返回不是create.turbo_stream.erb
声明要做的,即如果 caritem 为 nil 则重新渲染部分。
*注意:else
respond_to 块的部分在引用和不引用 turbo_stream 的情况下都进行了尝试,结果相同。
相反,返回的xhr
响应是在开发模式下返回的错误的 HTML 页面。
浏览器控制台还抱怨
这是不真实的,因为 HTML 仍然挥之不去:
<turbo-frame id="article_1"></turbo-frame>
需要做些什么来正确处理错误,将表单部分呈现在正确识别的位置?
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 显示了同样的错误:
ruby-on-rails - Rails 7 collection_check_boxes 未在编辑视图中显示选中的项目
根据这个线程,我试图让我的代码显示在您显示编辑视图时已经检查了哪些项目。所有其他字段均已预先填充。
这是我目前的方式:
我需要调用 include_hidden: false 否则数组包含一个空白项作为数组中的第一个。
这是它所指的辅助方法:
与其他线程不同的是,我使用辅助方法来调用项目集合,而其他线程正在调用数据库中的对象集合。所以我不确定我应该如何首先获得身份证。
@member.pronouns 是一个包含数组的字符串(我正在使用 PostgresQL),所以首先我需要将它转换为我假设的数组,因为我在其他地方阅读,然后我可以调用它的 map。但是虽然 .map(&:itself) 没有返回任何错误,但在呈现编辑视图时不会检查代词字符串中列出的项目。
有任何想法吗?
ruby-on-rails - 将淡入淡出设置为 turbo_stream
Rails UJS 有一个紧凑性。在js.erb
文件的单行中,调用 dom_id,部分 AND 给它一些交互(以极简主义的方法确认对象的变化)。调用 jQuery 库的示例。
为了消除 UJS 和对 jQuery 的依赖,在 turbo 流上的
vanilla JS 中实现等价物的最简洁的方法是什么?.fadeTo('slow',1)
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
本地运行,包括构建文件夹的内容。