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

ruby-on-rails - Rails 7 - 撤消/删除 Schema.rb add_foreign_key 引用并重新开始

我已经从用户表开始我的项目,并且已经迁移到使用帐户表。在此过程中,我的 schema.rb 文件中仍有对 Users 表的旧引用,我需要将其删除并创建新引用或更新引用。

我正在尝试制定一个允许我执行此操作的迁移,但是由于没有 Users 表并且当它确实存在时,它一直抛出错误,它从来没有 account_id ,您可以在我的 schema.rb 文件中看到它的引用.

我真的只需要我的 schema.rb 文件来更新 "add_foreign_key "likes", "users", column: "account_id"

add_foreign_key "likes", "accounts", column: "account_id"

但是我发现这不可能在不产生错误的情况下进行迁移。

有什么建议么?

0 投票
0 回答
58 浏览

hotwire-rails - Rails 控制台销毁操作,但不会渗透到应用程序并通过 turbo 流进行处理

表单包含销毁按钮

控制器以预期的方式响应

但是,在控制台中:

不会影响浏览器,实际上日志中没有注册任何内容。刷新浏览器确实会根据数据库对象重置一些东西。

这是运行 rails 7.0.1 和 ruby​​ 3.1.0。

产生这种意想不到的行为的错误是什么?

0 投票
1 回答
29 浏览

recaptcha - Recaptcha gem 需要在 Rails7 上提交失败

带有recaptcha 的工作表单从rails6 移动到rails7 总是在第一次提交时出现recaptcha 验证错误。在第二次提交它工作。

第一次提交时缺少一些数据:来自 rails 日志:

我认为这是一个涡轮增压问题,但不确定。

0 投票
1 回答
31 浏览

ruby-on-rails-7 - (Rails 7)状态:它/它做什么?

升级到 rails 7,在我有一个嵌套层次结构的邀请系统上工作:

邀请模特有: has_many :guests, dependent: :destroy 来宾模特有:belongs_to :invite

从 guest_controller.rb 发出特定代码:

当我不包含status: :see_otherRails 时,会删除与该邀请关联的客人以及邀请本身。但如果我包括它。通过仅删除选定的来宾条目,它可以按预期工作。

“状态:”究竟是做什么的。目前还没有找到满意的答案。

0 投票
1 回答
49 浏览

javascript - FullCalendar Rails7

我正在尝试使用 gem 'fullcalendar-rails' 将 fullcalendar 添加到我的 rails 项目中,我已经分配了我想在日历中显示的任务,有一个 start_time 和一个 end_time。我按照它说的做了一切,但它没有显示出来。现在我看到了简单的日历,但不一样。我安装了 momentjs-rails gem,然后在 application.js 和 application.scss

js

//= 需要时刻

//= 需要完整日历

//= 需要全日历/区域设置-all

};

};

};

scss

但问题是我在主页中创建了一个 div 并且它没有显示日历

div id="日历"

对不起我的英语

0 投票
2 回答
586 浏览

javascript - Rails UJS 不使用 Rails 7 触发

我将我的 Rails 应用程序升级到 Rails 7。我知道 Turbolinks 和 Rails UJS 实际上被 Rails 7 中 Stimulus 和 Turbo 的 Hotwire 组合所取代,但我想知道我是否仍然可以使用 UJS,如果可以,为什么不能在职的?

我的不起作用的方法如下所示:

console.log 有效。当我点击一个元素时,它曾经用这个代码改变,但现在它不再改变了。Rails.fire当我检查网站时,根本不再触发,并且日志或网络部分没有错误。

我觉得我在这里遗漏了一些重要的东西,但我不知道是什么。

0 投票
1 回答
67 浏览

ruby-on-rails-7 - 未生成通过 rails importmap 的 flatpickr

尝试使用 flatpickr 作为 UI 来使用 Rails 7.0.1 和 ruby​​ 3.1 设置日期字段。单击输入字段时,未呈现预期的 2 个月日历,实际上,浏览器网络选项卡中未注册任何内容。

bin/importmap pin flatpickrrails将库固定到importmap.rb文件中的cdn之后:

application.js具有最初生成的import "controllers".

flatpickr_controller.rb是在 javascript/controllers 目录中创建的

视图部分调用:

而控制器设置

为什么日历不渲染?
我也对放置不同 flatpickr 选项的位置感到困惑:在控制器中,或直接放入表单日期元素中。

0 投票
1 回答
93 浏览

selenium-webdriver - Rails-ujs 在 Rails 7 的 Capybara 测试中不起作用(使用 Selenium 驱动程序)

我已经连接了@rails/ujs,将其固定并包含在 js 文件中。当我尝试在开发服务器上执行此操作时,我看到该代码按预期工作。但是当我使用 selenium 驱动程序启动我的 capybara 测试时,我在日志中看到该表单(具有remote: true标志)作为 HTML 提交。

这是我的代码:

意见/文章/index.html.slim

应用程序/javascript/controllers/forms_controller.js

文章控制器.rb

文章/index.js.erb

规范/接受/index_page_spec.rb

当我在页面上启动一些 js 文件(例如,发送 AJAX 请求)时,我会在测试日志中看到它们,因此我看到了 selenium 驱动程序工作。我想,我没有正确连接 rails-ujs,但不确定我到底错过了什么。有人可以帮忙吗?非常感谢您!

0 投票
2 回答
562 浏览

ruby-on-rails - 如何在 Rails 7 和 importmaps 中使用引导图标

新领域:Rails 7.0.1、Ruby 3.1.0

rails new rails7app

bin/importmap pin bootstrap将引导程序添加到应用程序。

Bootstrap 是 js 和 css 的结合。bootstrap-icons似乎基本上是css。使用 yarn/npm 方法yarn install bootstrap-icons可以工作,但使用 Rails 7 并且没有 npmbin/importmap pin bootstrap-icons则不起作用。有点期待,因为这是css。

如何添加bootstrap-icons到基本的 Rails 7 应用程序?

0 投票
0 回答
124 浏览

ruby-on-rails - 最佳实践:可以只渲染 Turbo Stream 响应吗?还是总是包含标准的 HTML 响应?

将 format.html 和 format.turbo_stream 响应保留在 respond_to 块中以获取所有控制器响应是最佳做法吗?在任何情况下只包含 turbo_stream 响应是安全的吗?

Hotwire 文档指出:

最好在没有 Turbo Streams 的情况下开始您的交互设计。让整个应用程序像 Turbo Streams 不可用时一样工作,然后将它们分层作为一个级别。这意味着您将不会依赖需要在本机应用程序或没有它们的其他地方工作的流程的更新。

WebSocket 更新尤其如此。如果连接不佳,或者存在服务器问题,您的 WebSocket 很可能会断开连接。如果应用程序设计为在没有它的情况下工作,它将更具弹性。

我假设这意味着我们应该始终将非 Turbo Stream 响应、错误处理等作为后备?

我在我的#index 页面之一中成功实现了 Turbo Streams。我有一个表,其中的行代表集合中的每个模型,每行中都有操作按钮,可以让用户更新模型。以前,按钮链接到单独的#edit 表单页面,然后是用于#show、错误处理等的标准 CRUD 流。现在使用 Turbo Streams,用户可以在不离开 #index 表视图的情况下更新行。太棒了。我希望摆脱旧的视图页面,但想知道是否需要保留它们作为后备。