问题标签 [activesupport-concern]

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

ruby-on-rails - Rails 关注点,如何在 api 控制器中包含关注点

我正在构建一个 Rails api,目前有这个文件夹结构:

在此处输入图像描述

error_serializer.rb 文件是一个模块:

我可以将其包含在任何 api 控制器中,例如:

但由于这个 errors_serializer 模块只与 api 控制器相关,我想将文件移动到“ api/concerns/error_serializer.rb”。

但这会产生错误:

我尝试将文件中的名称更改为:

但得到了同样的错误。

那么我必须更改什么才能移动该文件?

0 投票
2 回答
516 浏览

ruby-on-rails - 为什么我关注的方法不能从控制台运行?

我创建了一个关注点来添加一个enumclass_methods

但是,当我尝试在 中执行这些方法中的任何一个时Order,它们都不起作用。

0 投票
2 回答
619 浏览

ruby-on-rails - 在关注轨道内使用序列化程序

我正在使用序列化程序来格式化我的 rails-api 投影仪的 json 响应。我正在使用关注来格式化最终回复。我的代码片段如下

entry_controller.rb

关注/response.rb

application_serializer.rb

entry_serializer.rb

entry#index中,如果我使用json_response(@entries)我对请求的最终响应没有格式化,并且每个条目都与数据库中的一样。相反,如果我使用render json: @entries. 我按照序列化程序获得。我想将关注方法json_response(@entries)与序列化程序一起使用。有人可以建议一种在关注方法中以通用方式使用序列化程序的方法,因为多个控制器使用相同的关注方法。提前致谢。

0 投票
1 回答
257 浏览

ruby-on-rails - Rails ActiveSupport::关注和方法评估

我有这个使用带current_user助手的设计的应用程序。当我创建一个模块时,即使它从未发生过,在我提到它的归属之后也会变成current_usernil

ModuleTest

输出:

但是,如果我删除/注释掉这一行# current_user = nil if falsecurrent_user仍然有效:

这会与惰性评估有关吗?

编辑

整个问题依赖于 Ruby 在未评估语句时如何定义变量:

这在下面是如何工作的?

0 投票
1 回答
508 浏览

ruby-on-rails - 如何从活动作业中访问模型/关注点的私有方法?

可能吗?我尝试从包含关注点的 foo_model 调用它,但我不断收到NoMethodError: private method 'foo_def' called foo_model

任何帮助将不胜感激。

问与答:为什么我没有在工作中引起关注?我需要使用模型/关注点中的 5-6 种方法。如果我在两个不同的问题上有相同的代码,那将违反 DRY 原则。

0 投票
0 回答
46 浏览

ruby - 在“主机”类完全加载后执行关注代码

背景

我有一个 ActiveRecord 问题,它执行以下操作:

当我运行这个(嗯,类似的东西)时,我会得到“hello”异常,因为在 的时候include Xyz,自定义表名还没有设置,所以 - 在这个时间点 - table_exists?是正确的false

如果我切换线路,一切正常(即,没有例外):

问题

现在的行为(两种情况)完全正常且符合预期,但对调用者来说有点不舒服。

有没有办法修改模块定义,以便我的代码(在这个人为的例子中,raise)被延迟,直到“主机”类完全加载?

0 投票
1 回答
256 浏览

ruby-on-rails - ruby-association 中的 Dynaimc class_name

问题
有一些模型应该作为模板复制。
例如:有一个新闻条目,我想将它复制到几个组。
所以复制的元素应该与模板有关联。并且模板应该与它的元素有关联。

当前状态
因为有几个模型具有与可复制元素相同的方法,所以我提出了一个问题。我尝试使用动态关联名称链接到自身的类,但是当我创建一个元素时,出现了 Missmatch 错误。

关注中的协会

是否有动态解决方案,或者我应该将其从关注点中删除并将其复制到所有模型?

0 投票
2 回答
1443 浏览

ruby - 在模块前面加上 ActiveSupport::Concern ?红宝石 2+

现在如果我将我的模块转换为关注模块,它不是......

那么我们如何使用 prepend 和 ActiveSupport::Concern 呢?红宝石 2+

0 投票
1 回答
232 浏览

ruby-on-rails - Rails:关注不加载 has_one 孩子

如果我有这样的父类:

这种担忧看起来是这样的:

那个类看起来像这样:

鉴于这两种情况,为什么他们找不到彼此?

0 投票
1 回答
77 浏览

ruby-on-rails - 为什么 Rails 低级问题会导致模块丢失其常量?

我在 Rails 4.2 中有一个可订购的关注点,它有一个恒定的“完成”。app/models/concerns/orderable.rb

在 Rails 控制台中,我可以运行Orderable.constants,它返回[:COMPLETE]。但是,如果我将 Orderable 关注点更改为Rails有关模块中描述的“low-cruft”样式,如下所示:

然后Orderable.constants在 Rails 控制台中运行返回[]. Rails 文档说“定义关注点的简单快捷方式……是等价的”。为什么这个单一的改变会导致无法访问模块的常量?我需要以某种方式重新定义它们吗?