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

ruby-on-rails - Rails 4 - 关注中的别名方法

我正在尝试添加alias_method :zzz_delete, :delete关注点,但它不起作用。我试图将它包装在included do,singleton_class.class_eval doclass << self所有这些块的各种组合中。

我错过了什么?

0 投票
1 回答
506 浏览

ruby-on-rails - 为自定义acts_as添加类方法

我想在方法调用时动态添加类方法acts_as。我的文件结构如下所示(取自http://guides.rubyonrails.org/plugins.html):

我希望能够在类调用时声明类方法acts_as_foo。实例方法适用于LocalInstanceMethods. 最简单的方法是添加到模块中,但我所有的其他类也有这个方法。我已经尝试添加一个define_methodintoacts_as方法,返回未定义的方法。任何想法 ?

0 投票
1 回答
391 浏览

ruby-on-rails - ruby:避免生成器中的重复方法

我在避免生成器中出现重复代码时遇到了麻烦。我曾尝试使用关注点,但没有成功。谁能帮我 ?

我的 3 个生成器具有相同的方法,称为:

所以我在lib/generators/concerns一个名为initializer.rb

我以这种方式将它包含在我的生成器中:

但是当我调用一代时,它会因以下错误而失败:

Error: uninitialized constant MyViewsGenerator::Initializer.

0 投票
1 回答
196 浏览

ruby-on-rails - Rails 控制器关注自定义翻译键

我正在构建一个高级搜索功能,可以很容易地被各种实体采用。此功能将适用于#index所需控制器的操作,因此我决定关注控制器,将通用部分挂钩到#index每个控制器 I include AdvancedSearchFeature

一切都很顺利,直到我发现翻译是一个相当大的问题。每个高级搜索都使用不同的翻译键,应该在某处提供,但是......我不知道在哪里最好这样做。

我想过:

  • 在关注点上,不是,因为它是通用的;
  • 在我关注的控制器中,不是,因为控制器不应该直接处理翻译;
  • Model.advanced_search_translation_keys在链接到控制器的模型中,不是,因为提供一个然后应该分配给要在相应视图中使用的变量的感觉并不自然;
  • #index与控制器关联的视图中,不是,因为视图不应被翻译散列污染,然后应将其传递给高级搜索功能通用部分。

这就是为什么,我最终在...帮助者中获得了这些翻译。这些助手是从高级搜索功能通用部分调用的,如果存在所需的翻译键,则从那里获取。但是......我真的不喜欢专门创建帮助器来返回翻译的想法。

你对如何做到这一点有更好的想法吗?也许您偶然发现了这个问题并以其他方式解决了它?

0 投票
1 回答
1156 浏览

ruby-on-rails - ActiveSupport::未找到关注方法

我正在扩展 ActiveRecord::Base。在我的 lib 文件夹中,我有一个文件 mongoid_bridge.rb:

在 config/initializers 中,我有两个文件,为了以正确的顺序读取,每个文件都以 01、02 等为前缀。在 01_mongo_mixer.rb 中,我有以下内容:

然后在 02_model_initializer.rb 中,我有以下内容:

model 是 ActiveRecord 子类的实例,因此它应该在查找链中找到 create_mongo 实例方法。但是,它没有找到它,因为我收到以下错误:

为什么找不到实例方法?

更新:

好像包含了ClassMethods下的方法,但不包含InstanceMethods下的方法:

0 投票
1 回答
226 浏览

ruby-on-rails - 如何在模块内确定方法调用的范围

  • 我想定义一个方法封装模块。
  • 它与不同模块中的方法具有相同的名称。
  • 当调用我想要的那个时,它会调用第一个混入的另一个。

代码 :

错误

导轨 4

0 投票
2 回答
1524 浏览

ruby-on-rails-4 - 在 Sidekiq Worker 中使用控制器关注点

我有一个像这样的 Sidekiq Worker:

“print_tiquet”和“print_summary”是控制器关注点内的方法,称为Printable。

有没有办法将这种担忧包含在工人阶级中?其实我试过没有运气:

要求“可打印”包括可打印

提前致谢。

0 投票
2 回答
1220 浏览

ruby-on-rails - 关注的 Rails 协会

我正在为我的 Rails 应用程序使用关注点。我有不同类型的用户,所以我提出了一个loggable.rb问题。

在我的担心中,我有

因为我的每个包含关注点的用户都将与 auth_info 表关联。

问题是,我需要在我的 auth_info 表中放入哪些外键?

例如

我有 3 种用户:

  1. 顾客
  2. 卖方
  3. 游客

如果我只有客户,在我的表格方案中,我会放置该字段

但在我的情况下?

0 投票
0 回答
650 浏览

ruby-on-rails - 关注的嵌套类定义

我有权威政策类,它在里面声明了另一个类:

现在我想Scope在另一个地方使用这个相同的内部类。一种方法是在超类中定义它并覆盖,但要做到这一点,我必须创建另一个类class NewClass < ApplicationPolicy并从它继承PaymentPolicy。但是我喜欢ActiveSupport::Concern并且不知道如何将类定义放在关注模块中。这个

不起作用。这都不是:

如何将嵌套类定义放在关注模块中?

0 投票
0 回答
456 浏览

ruby-on-rails - Elasticsearch - 从 Active Record 模型中自动导入记录

系统:

  • 导轨 4
  • 红宝石 2
  • 弹性搜索 1.6.0

我正在使用 Elasticsearch 过滤记录并计算我的 Active Record 模型的统计数据。我希望我的 Elasticsearch 索引能够镜像我的 Postgres 数据库,以便将现有记录导入到我的索引中,新记录在创建时被索引,等等。

我担心我的两个模型包括这样的:

但是,当我打开 Rails 控制台并调用Bar.statistics时,我会nil进入每个领域。如果我然后执行Bar.import force: trueand then Bar.statistics,我会在扩展的统计信息聚合中得到正确的非零值。

其他可能值得注意的事情:当我使用 Pry 在 Rails 控制台中打开 foo.rb 然后退出时,我遇到了一个Cannot define multiple included blocks for a Concern错误(尽管加载应用程序工作正常)。

我是否缺少使我的记录自动导入 ES 的东西?