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

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 回答
118 浏览

ruby-on-rails - 为什么 Rails 模型中的“包含”位置会影响 HABTM 行为?

我花了一个小时调试一个非常奇怪的 rails 行为。鉴于:

应用程序/模型/user.rb


应用程序/模型/image.rb


应用程序/模型/video.rb

应用程序/模型/tag.rb


应用程序/模型/关注/tags_functions.rb


如果我执行这样的代码:

它将提供 1 个项目image.tags,但 2 个重复项目video.tags

但是如果我们这样修改代码:

一切正常,图像 1 个标签,视频 1 个标签

甚至更多...如果我们移到include TagsFunctions 下面 has_and_belongs_to_many :tagsvideo.rb文件中,两个代码示例都可以正常工作。

我以为我很了解 Rails,但这种行为对我来说真的不清楚。
导轨版本:5.1.1

0 投票
1 回答
429 浏览

ruby-on-rails - 基于属性大小的查询

我想知道 Rails 5 中是否可以where查询给定长度的属性?

假设我有一个tags在 model 上调用的序列化 Array 属性Post,并且我想找到posts该属性中包含 3 个以上项目的所有内容。

我会设想它看起来像这样:

如果 ActiveRecord 中有解决方案,那将是一个很大的好处。

0 投票
2 回答
69 浏览

ruby-on-rails - 找不到带有 'id'= 的世界

我有一个 World 父对象和一个 State 子对象。我正在尝试创建一个新的 State 对象,但 rails 没有找到世界 ID。我正在尝试从世界显示页面链接到新的状态表单,并且 url 显示.../worlds/1/states/new了为什么这没有在父 ID 上出现?错误应该来自控制器中的这条线@world = World.find(params[:id])。我(params[:world_id])什至尝试过使用。

为简洁起见,我只在此处发布相关代码。

世界.rb

状态.rb

states_controller.rb

worlds/show.html.erb 中新状态表单的链接:

路线.rb

状态/_form.html.erb

单击“新状态”链接时的rails控制台结果

0 投票
2 回答
264 浏览

ruby-on-rails - Rails 5.1 minitest 在参数中展平数组数组

从 Rails 4.2 升级到 5.1 后,似乎只用于测试,当我提供如下内容时:

然后在控制器的参数中将其解析为:

幸运的是,对控制器的实际调用被正确解析。我显然需要修复测试,所以任何帮助都将不胜感激!

0 投票
2 回答
3501 浏览

deployment - Rails 5.1 Capistrano 使用 secrets.yml.key 部署

我正在尝试使用 capistrano 部署到暂存环境。我已经设置了我的加密机密并在开发中进行了测试,并且这些机密似乎可用。我已经为read_encrypted_secrets = true. 我的密钥文件被 git 忽略了。我已经 ssh 进入我的暂存环境并将其放在secrets.yml.key目录中app_name/current/config。我正在部署到 AWS EC2 实例。我没有使用RAILS_MASTER_KEY环境变量。

当我运行cap staging deploy并选择我的发布标签时,我在deploy:migrating bundle exec rake db:migrate

我在服务器上有正确的密钥,为什么 rails 没有找到/使用它?

0 投票
4 回答
1640 浏览

ruby-on-rails - 带有 Postgresql 扩展的 Heroku CI

我正在尝试使用 Heroku 的 CI 来运行我的 Rails 应用程序的测试,但是在尝试加载我的structure.sql文件时遇到了问题。

这里的相关行是:

psql:/app/db/structure.sql:28: 错误: 必须是扩展 plpgsql rake 的所有者已中止!

Structure.sql 包含这一行:

关于如何在 Heroku 的 CI 上工作的任何想法?

0 投票
2 回答
678 浏览

ruby-on-rails - Rails 5.1.1 不生成脚手架/控制器等

将 rails 的本地安装从 5.0.1 更新到 5.1.1。昨夜。我现在无法让任何一代人工作,即rails g scaffold Productrails generate controller Welcome. 终端根本没有反应。我必须ctrl-c摆脱它。然后我得到以下信息:

我应该怀疑这里的春天宝石吗?

我已经跑了bundle update

并且:

我的 gemfile.lock:

0 投票
1 回答
145 浏览

ruby-on-rails - Rails 5.1 api渲染json加倍关系

在 Rails 5.1.1 中,我遇到了一个问题,即渲染 JSON 以某种方式“加倍”了关系的数量。

有一个 has_many / belongs_to 关系,没什么花哨的。一个“用户”有很多“代码”。逐步执行该users_controller#update方法,我看到以下内容:

检查来自参数的内容:

检查@user.update(user_params)调用后保存的内容:

最后,as_json通过关系也可以直接加倍:

检查as_jsonto_json相同)的输出:

在这里我们可以看到,不知何故,关系的数量神奇地翻了一番!有任何想法吗?

更新

我正在使用自定义函数来保存关联(autosave_associated_records_for_codes),这似乎引入了问题。我现在已经评论了它,但会尝试重新审视为什么它会加倍。一旦我找出确切的原因,就会回复一个解决方案。

0 投票
3 回答
122 浏览

ruby-on-rails - 在一个查询中获取不同模型的子代

我试图了解 Rails 中有哪些解决方案可以让同一父级查询不同模型的子级?

例如,我想获取属于同一类别的所有图像和文章,并按created_at.

0 投票
2 回答
81 浏览

ruby-on-rails - Rails 模型在同一个表中保存了其自身类类型的多个引用

似乎没有适用于这种模式的关联序列:

每个用户都持有对同一个表中两个 OTHER 用户的引用。

该表包含两个名为和的User字段。我一直在尝试使以下模型关联起作用:user_a_iduser_b_id

参考只需要在一个方向上工作。我只是想通过以下方式使用模型:

我永远不需要访问user_a.parent_user. 我不需要那种关系。

当我self.user_abefore_save回调中引用时会出现问题。我基本上得到了一个 SQL 查询的递归循环,最终给了我一个stack too deep错误。

有谁知道这里发生了什么?