小编mec*_*cov的帖子

如何使用 esbuild 在 Rails 7 应用程序中安装 jQuery 和 bootstrap(无需 webpacker)

我正在尝试通过安装 bootstrap 和 jQuery 创建一个 Rails 应用程序。首先我尝试使用创建

rails new name--css bootstrap
Run Code Online (Sandbox Code Playgroud)

但它不起作用。所以我用它手动完成了。

我也尝试使用 esbuild 但在控制台中打印时它不起作用。这是我尝试过的YouTube 链接

所以问题是如何在不使用 webpacker 的情况下在 Rails 7 应用程序中安装 jQuery

问题是现在 bootstrap 和 JavaScript 可以工作,但 jQuery 不行。

这是我的文件看起来像

// app/assets/stylesheet/application.scss

@import "bootstrap-sprockets";
@import "bootstrap";
Run Code Online (Sandbox Code Playgroud)
// app/javascript/application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap.min
// require turbolinks
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
# Gemfile

gem 'bootstrap-sass', '~> 3.3.7'
gem 'jquery-rails'
gem 'sass-rails'
Run Code Online (Sandbox Code Playgroud)

所有这些创建了一个控制器并添加了一些基本的引导程序、JavaScript 和 jquery 代码来测试它是否工作,但 JavaScript 和引导程序都工作。将 ajax.googleapi 链接添加到 HTML 页面时,jQuery 正在工作。但这不是一个好的做法。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

所以问题是如何在 …

jquery ruby-on-rails ruby-on-rails-7

15
推荐指数
2
解决办法
2万
查看次数

如何在 Rails 和 Turbo 中使用 button_to 调用确认提示

以前在 Rails 中使用button_to标签时,可以使用这样的确认对话框

<%= button_to 'Destroy', @post, method: :delete, data: { confirm: 'Are you sure?' } %>
Run Code Online (Sandbox Code Playgroud)

data: { confirm: 'Are you sure?' }是 @rails/ujs 库在幕后使用的 Rails 魔法数据属性

在 Rails 7 之后,默认情况下该库不再打开。使用 Turbo 库代替 Rails

现在这段代码不起作用

Rails 官方文档Turbo 手册中没有任何信息

我尝试过的

<%= button_to 'Destroy', @post, method: :delete, data: { turbo_confirm: 'Are you sure?' } %>
<%= button_to 'Destroy', @post, method: :delete, data: { 'turbo-confirm': 'Are you sure?' } %>
Run Code Online (Sandbox Code Playgroud)

但没有结果

我没有找到任何解决方案,但在 Hotwire论坛上找到了。此解决方案具有刺激作用。我只是稍微改进一下

<%= …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails turbo ruby-on-rails-7

12
推荐指数
2
解决办法
9260
查看次数

使用 Ruby on Rails 进行 Postgres 公共表表达式查询

我试图找到在 Rails 应用程序中使用通用表表达式进行 Postgres 查询的最佳方法,因为我知道 ActiveRecord 显然不支持 CTE。

我有一个名为的表user_activity_transitions,其中包含一系列正在启动和停止的用户活动的记录(每行指状态的更改:例如启动或停止)。

一个地方user_activity_id可能有很多对开始停止的情侣,它们位于不同的两排。如果活动当前正在进行并且尚未停止,则也可能只有“已开始”。第sort_key一个状态从 0 开始,每次状态更改时增加 10。

id      to_state     sort_key     user_activity_id    created_at
1       started      0            18                  2014-11-15 16:56:00
2       stopped      10           18                  2014-11-15 16:57:00
3       started      20           18                  2014-11-15 16:58:00
4       stopped      30           18                  2014-11-15 16:59:00
5       started      40           18                  2014-11-15 17:00:00
Run Code Online (Sandbox Code Playgroud)

我想要的是以下输出,将开始-停止的对组合在一起,以便能够计算持续时间等。

user_activity_id     started_created_at      stopped_created_at
18                   2014-11-15 16:56:00     2014-11-15 16:57:00
18                   2014-11-15 16:58:00     2014-11-15 16:59:00
18                   2014-11-15 17:00:00     null
Run Code Online (Sandbox Code Playgroud)

表的实现方式使得运行该查询变得更加困难,但对于未来的更改(例如新的中间状态)更加灵活,因此不会进行修改。

我的 Postgres 查询(以及 Rails 中的相关代码):

query = …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails common-table-expression rails-activerecord

7
推荐指数
2
解决办法
5368
查看次数

生成所有字母和数字的哈希值

使用 ruby​​,如何对字母表中的每个字母(键)和 1-26(值)进行哈希?

我需要创建一个哈希,其中键为“a”到“z”,值为 1 到 26,但我不想自己编写alphabet = {'a'=>1,'b'=>2,....'y'=>25,'z'=>26}

我的代码中需要这个来打印alphabet[i] if alphabet.key?(i)

ruby ruby-hash

7
推荐指数
3
解决办法
553
查看次数

对特定路由使用Devise和Rails Admin进行身份验证

我使用Rails Admin和Devise来管理和用户模型.我在用户模型中添加了一列"admin"来表示其身份.在config/routes.rb中,我为RailsAdmin:Engine安装/ admin

我想只允许current_user.admin用户访问/ admin,否则,将用户重定向到主页.

如何在最干净的代码中实现这一点?

ruby-on-rails devise rails-admin

6
推荐指数
1
解决办法
6274
查看次数

合并Java流

我有很大的按文档ID和版本排序的版本化文档流。

例如,Av1,Av2,Bv1,Cv1,Cv2

我必须将其转换为另一个Stream,其记录通过文档ID进行汇总。

A [v1,v2],B [v1],C [v1,V2]

可以不使用而完成此操作Collectors.groupBy()吗?我不想使用groupBy()它,因为它将在分组之前将流中的所有项目加载到内存中。从理论上讲,不需要将整个流加载到内存中,因为它是有序的。

java java-stream collectors

6
推荐指数
1
解决办法
120
查看次数

将列表的pandas列转换为矩阵表示形式(一种热编码)

我有一个pandas列,其中列出了各种长度的值,如下所示:

  idx lists

    0 [1,3,4,5]
    1 [2]
    2 [3,5]
    3 [2,3,5]
Run Code Online (Sandbox Code Playgroud)

我想将它们转换成矩阵格式,其中每个可能的值代表一列,如果该值存在,则每一行填充1,否则填充0,例如:

idx  1 2 3 4 5 

  0  1 0 1 1 1
  1  0 1 0 0 0
  2  0 0 1 0 1
  3  0 1 1 0 1
Run Code Online (Sandbox Code Playgroud)

我以为这个术语是一种热编码,但是我尝试使用pd.get_dummies方法,该方法指出它可以进行一热编码,但是当我尝试提供上述输入时:

test_hot = pd.Series([[1,2,3],[3,4,5],[1,6]])
pd.get_dummies(test_hot)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/core/reshape/reshape.py", line 899, in get_dummies
    dtype=dtype)
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/core/reshape/reshape.py", line 906, in _get_dummies_1d
    codes, levels = _factorize_from_iterable(Series(data))
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/core/arrays/categorical.py", line 2515, …
Run Code Online (Sandbox Code Playgroud)

python list pandas

6
推荐指数
1
解决办法
153
查看次数

如何获取 ActiveStorage 属性列表(附件名称)?

例如我有模型

class User < ApplicationRecord
  has_one_attached :avatar
  has_one_attached :diploma

  has_many_attached :photos
  has_many_attached :files
end
Run Code Online (Sandbox Code Playgroud)

如何获取某些模型的附件名称列表(分别用于has_one_attachedhas_many_attached)?

[:avatar, :diploma][:photos, :files]在这种情况下。

ruby-on-rails rails-activestorage

5
推荐指数
1
解决办法
1407
查看次数

将公用表表达式 (CTE) 与 Rails ActiveRecord 结合使用

通用表表达式是不同 RDBMS(PostgreSQL、MySQL、Oracle、SQLite3 等)中相当常见的做法,用于跨多个查询组件多次执行相同的计算或用于某些其他目的

我发现旧的 gem postgres_ext具有这样的功能。但它没有得到维护。这是 Postgres 特有的

有一些关于它的老问题,但它们是关于特定的 Rails 版本或特定的 RDBMS 或关于Arel

是否可以使用WITHAR 某种常见方式在 Rails 中使用子句?

ruby-on-rails common-table-expression rails-activerecord

4
推荐指数
1
解决办法
1583
查看次数

鉴于所有用户和所有文章的未定义方法

这里是Ruby的新手,并试图建立经典的User-Articles MVC结构,而是使用Objectives和Key Results.

问题:

NoMethodError in Home#index - undefined method `keyresults' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

题:

如何在控制器中定义目标和关键结果之间的关系?

我认为这是问题所在.

关于如何进行的任何解释都是惊人的!

我试过了:

@objectives = Objective.all.include(:keyresult)
Run Code Online (Sandbox Code Playgroud)

但那没用.

目标:在索引页面列出所有目标及其相关的关键结果:

目标1

  • 关键结果1
  • 主要结果3

目标2

  • 关键结果2
  • 关键结果4
  • 关键结果5

objective.rb

class Objective < ApplicationRecord
  has_many :objectives_keyresults, dependent: :destroy
  has_many :keyresults, through: :objectives_keyresults
Run Code Online (Sandbox Code Playgroud)

keyresult.rb

class Keyresult < ApplicationRecord
  belongs_to :objective
Run Code Online (Sandbox Code Playgroud)

home_controller.rb

class HomeController < ApplicationController
  def index
   @objectives = Objective.all
  end
Run Code Online (Sandbox Code Playgroud)

index.html.erb

<%- model_class = Objective -%>

<% @objectives.each do |objective| %>
  Objective:
  <%= objective.title %>
  Key Result:
  <% …
Run Code Online (Sandbox Code Playgroud)

ruby model-view-controller ruby-on-rails

3
推荐指数
1
解决办法
62
查看次数