问题标签 [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.
ruby-on-rails - Rails 关注如何从 InstanceMethod 调用 ClassMethods
我需要从实例方法调用weight_to_kg
类方法。
我想为我的许多模型创建重量到公斤的转换器,这些模型的重量列以磅为单位。
我该怎么做?
ruby-on-rails - 自动加载常量关注点时检测到循环依赖::
注意:在您考虑将此问题标记为其他类似问题的重复之前,请注意这个问题是关于 Rails 中的问题的问题,而我搜索的其他问题涉及控制器。毫无疑问,我发现了,这与关注有关。
我有一个名为comments_deletion.rb的文件app/models/concerns
,它包含以下代码:
我试图通过编写以下代码在我的模型中混合文件:
只是这样做,然后在调用 时rails console
,它给了我以下错误:
我正在使用 Rails 4.0.2,这件事让我发疯了,我无法弄清楚我的代码有什么问题。
ruby-on-rails - 将参数传递给关注点,使用关联
我有一个关注来设置一些常用的关联(除其他外),但我需要根据使用关注的类进行一些小的调整。我的基本顾虑是这样的:
如您所见,我希望能够更改组织关联中的类名。
我在想我可以包含一些类方法来提供这种支持,但我无法弄清楚我们如何继续获取这个值。这是我如何看待自己使用它的方式:
这是我当前版本的代码:
我认为这至少有两个问题:
1).organization_class
在建立关联时似乎没有定义该方法,因为NoMethodError: undefined method
当我加载 Dentist 模型时,我得到了 Class:Class` 的 organization_class'。
2)我猜在我什至将类传递给关注点(organizable organization_class: DentistClinic
行)之前,关注点内部的关联将被评估,所以它无论如何都不包含值。
我真的不确定如何解决这个问题。有没有办法将此参数传递给关注点并使用此值设置关联?
我所做的几乎与那篇文章中概述的完全一样。我的用例有所不同,因为我试图使用参数来配置在 Concern 中定义的关联。
ruby-on-rails - 如何在rails模型关注中覆盖class_method
如何覆盖模型关注点中定义的类方法?
这有点棘手,因为您并没有真正覆盖类方法,对吗?class_methods
因为它使用了在块中定义类方法的关注api 。
所以说我有一个看起来像这样的问题:
在模型中..我将如何覆盖该方法,以便在使用继承时可以像使用 super 一样调用它?所以在我的模型中,我想去:
?
ruby-on-rails - ActiveSupport::Concern Callback - NilClass 的未定义方法
我正在尝试设置一个实用程序回调,该回调可用于我的 Rails 应用程序中的多个模型,使用ActiveSupport::Concern
. 我有以下Postable
模块:
/app/models/concerns/postable.rb
这是我的Post
模型:
/app/models/post.rb
当我创建一个新实例Post
并调用post.save
时,我收到以下错误:
我在这里做错了什么?
ruby-on-rails - 我可以从 ActiveRecord::Concern 调用类方法而不将其混合到另一个类中吗?
我正在创建一个ActiveSupport::Concern,它使用该方法定义了几个类方法class_methods
。使用常规模块,可以直接使用调用类方法NameOfModule.target_method
(例如,在 stdlib 类 Math 中调用acos是很常见的Math.acos(x)
),但我不知道如何执行类似的调用 my Concern
. 这可能吗,如果可以,怎么做?
ruby - Ruby 替代在 ActiveSupport::Concern 中使用类变量
我有一个应用程序需要对数据库中的某些字段使用加密。这目前是使用一个关注点来实现的,该关注点处理包含类上的加密和管理字段的详细信息。系统能够以编程方式确定哪些类包含此问题非常重要,但更具体地说,以编程方式需要有一种确定哪些字段被加密的好方法。
今天,这是使用这样的类变量实现的,工作的:
包含在一个类中,如下所示:
类变量@@encrypted_attributes
将正确捕获键值对的散列,其中包含类名作为键,加密属性数组作为值。我考虑过使用加密模型的注册系统来使用和“注册”它们自己及其属性,但是与此相关的开销要多得多,在我的时间线上,我想从更简单的东西开始,如果它不太不安全的话.
这实际上在我当前的应用程序中运行良好,但我没有很多关于关注点或类变量的经验,所以我担心我是否对它的行为方式做出了严重的误判。这里的陷阱在哪里?自从我开始使用 ruby(不久前)开始使用 ruby 以来,我一直在编程,通常要避免使用类变量。
我已经被这个咬过一次,因为最初我认为类变量@@encrypted_attributes
将是包含类的类变量;这显然不是这样。每个包含它的新模型都会覆盖它,所以我得出的结论是这个类变量显然是关注本身。至少,这是我似乎正在目睹的行为。这最终证明是一种更理想的行为,因为现在我可以获得加密模型的完整列表。这有一个明显的限制,它只能返回已加载模型的加密模型和属性列表。
所以,我的问题:
这是类变量的正确用例,还是有另一种(更好的?)方法来捕获相同的信息?如果这是一个可接受的类变量用例,我应该添加哪些陷阱和/或保护措施以确保代码按预期工作?
也许我只是想太聪明,我应该硬编码我的列表?谢谢您的帮助!
ruby-on-rails - 模型关注中的 Rails 5 枚举生成 NameError: uninitialized constant
Rails 5 在这里。
我试图在我的用户模型(设计模型)中加载一个关注点,但没有运气。该include Levelable
作品在其他型号上没有任何问题。我是否必须为这个特殊模型配置一个特殊的配置/帮助程序/初始化程序才能使其工作?
模型关注 Levelable 被模型 User 和 Client 使用
和模型(为便于阅读而缩短)
这个设置结果是:NameError: uninitialized constant User::Levelable
同样的错误发生在客户端模型上,所以我猜有些东西不能处理我的关注负载。我已经尝试在config/application.rb
没有任何更改的情况下自动加载内部路径。
我不知道如何使关注的负载起作用,任何帮助都会很棒。谢谢 !
ruby-on-rails - Rails 4 - 使用关注点进行路由
我试图弄清楚如何在我的路线文件中使用关注点。
我有名为 User、Project 和 Eoi 的模型。
这些协会是:
用户
项目
爱伊
我正在尝试创建一个系统来显示已在项目中提交的 eois,以便它们仅对创建该项目的用户可见。
另外,我想向每个用户展示该用户制作的所有 eois(无论他们是在哪个项目上制作的)。
我想我想要第一个场景的嵌套路由,然后我还想要第二个场景没有嵌套的 eoi 路由。
在我的 routes.rb
我有:
我也想拥有:
我怎样才能使这项工作?我无法掌握此http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Concerns.html中的示例
我不明白示例中的值得称赞的是模型还是我需要编写的东西才能在 routes.rb 文件中的两个位置拥有路由。
我的下一个尝试是尝试复制上面链接中示例的要点,我有
我不确定我是否需要在某个地方进行定义才能使其正常工作。
ruby-on-rails - 未定义的方法belongs_to ussign Rails 关注,为什么?
我正在尝试从 gem 扩展 rails 模型。
使用关注我已经能够扩展类方法,但我不能扩展关联。included do
返回undefined method belongs_to
。我认为 Rails 无法正确加载类......
该模型在引擎中,我正在尝试从我的gem访问它。
这是代码:
从命令行:
如果我取消注释,included do
我会收到此undefined method 'belongs_to' for Myengine::Mymodel:Class (NoMethodError)
错误。