问题标签 [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 关注中获取封闭类的名称
第一次使用关注点,只是在寻找一些建议。
我有一个名为 location.rb 的 Rails 模型,希望包含一个 AlbumDefineConcern,然后查询我们当前所在的模型类(在此类 Location 中)。
我有:
和
我如何将“位置”作为班级名称?
ruby-on-rails - ClassMethods in Controller Concern returning NoMethodError
I have created a concern in controllers/concerns called reports.rb
In it I created the ClassMethods module.. It looks like this
I included this concern in my Merchants controller like this:
And then tried to call the report_details method in an action on the Merchants controller like so:
According to this post Rich on Rails I should be able to call:
But I get a NoMethodError when I try.. I also tried:
And got the same NoMethodError
What did I do wrong?
ruby-on-rails - Rails:关注 before_filter 类型的方法
我刚刚开始接触 Rails 中的关注点,并尝试为 ActiveRecord 类实现简单的日志记录。在那里我想定义应该进入日志并在保存后自动写入日志的字段。
我所拥有的是:
不幸的是,对 set_log_field 的调用没有效果——或者更确切地说,给定的值没有进入 print_log。我究竟做错了什么?
谢谢你的帮助!
ruby-on-rails - 动态定义相关的类和实例方法
我有一个担忧:
如您所见,它定义了一堆范围、类方法和实例方法。但我对重复Role.find_each do |role| ... end
.
我怎样才能消除这种重复?我试过这个
included
但由于有多个块,它不起作用。我可以提取Role.find_each
方法,但也好不到哪里去。
如何改进此代码并消除重复?
ruby-on-rails-4 - Rails 4 - public_send(key, value) 引发 NoMethodError 异常:未定义的方法`
我有一个角色类定义为:
可过滤模型关注的是:
结果 = self.where(nil) 行,返回所有角色
但是 results.public_send(key, value) 行会引发错误:
如果我检查:
感谢您的反馈
ruby - 如何将 ActiveSupport::Concern 应用于我的控制器中的特定操作?
我正在使用 Grape 构建 API。
我用名称创建了一个ActiveSupport::Concern
假设,Authentication
并在过滤器之前应用了一些,所以我的担忧如下:
现在假设在我的 UserController 中,我只想将此关注点应用于特定操作。我怎样才能做到这一点?
任何简单的方法来指定特定方法的关注点,就像在带有选项before_filter
的 rails 中一样?only
ruby-on-rails-4 - NameError:未定义的局部变量或方法#
我正在尝试清理以字符串形式出现的属性。我已经设置了一个模块,其中包含模型将调用的多种方法validate
。
班级:
class Preset < ActiveRecord::Base
include Shared::AttributeDataSanitizer
class At
我正在尝试清理以字符串形式出现的属性。我已经设置了一个模块,其中包含模型将调用的多种方法validate
。
班级:
模块:
当在extract
内部调用sanitize_attributes
时会发生以下错误:
[Rollbar] 未报告异常,因为 Rollbar 已禁用
NoMethodError(未定义的方法extract' for #<Preset:0x007f7dce91ba60>):
app/models/concerns/shared/attribute_sanitizer.rb:8:in
sanitize_data_attributes' app/models/preset.rb:27:in attribute_sanitization'
app/controllers/presets_controller.rb:25:in
block in update' app/controllers/presets_controller.rb:24:in `update'
extract
不是私有方法,但这是否会引发错误,因为它认为它是类方法?这应该是一个实例方法吗?注意:不止一个类需要使用它。
您可以使用corrwith
:
在 DataFrame 上实现了一个相关的方法 corrwith 来计算包含在不同 DataFrame 对象中的类似标签 Series 之间的相关性。
我正在尝试清理以字符串形式出现的属性。我已经设置了一个模块,其中包含模型将调用的多种方法validate
。
班级:
class Preset < ActiveRecord::Base
include Shared::AttributeDataSanitizer
class At
我正在尝试清理以字符串形式出现的属性。我已经设置了一个模块,其中包含模型将调用的多种方法validate
。
班级:
模块:
当在extract
内部调用sanitize_attributes
时会发生以下错误:
[Rollbar] 未报告异常,因为 Rollbar 已禁用
NoMethodError(未定义的方法extract' for #<Preset:0x007f7dce91ba60>):
app/models/concerns/shared/attribute_sanitizer.rb:8:in
sanitize_data_attributes' app/models/preset.rb:27:in attribute_sanitization'
app/controllers/presets_controller.rb:25:in
block in update' app/controllers/presets_controller.rb:24:in `update'
extract
不是私有方法,但这是否会引发错误,因为它认为它是类方法?这应该是一个实例方法吗?注意:不止一个类需要使用它。
您可以使用corrwith
:
在 DataFrame 上实现了一个相关的方法 corrwith 来计算包含在不同 DataFrame 对象中的类似标签 Series 之间的相关性。
ruby-on-rails - 使用 Active Concern 添加实例方法和常规 ruby 模块之间的区别?
添加积极关注的实例方法和通过模块上的普通 ruby def 关键字有什么区别?
和
ruby-on-rails - 在具有命名空间模型的 Rails 3 中使用关注点时,类方法仅包含一次
我有一个如下所示的文件夹结构:
我在 Rails 3 中,所以我已经自动加载了我的担忧:
文件如下:
quxable.rb
bar.rb
baz.rb
现在在控制台中,如果这样做,我会得到以下输出:
所以它似乎只正确地包含在第一次访问的模型中。然而,如果我运行以下命令:
我明白了["Foo::Bar", "Foo::Baz"]
。
知道这里发生了什么吗?我猜想自动加载/急切加载,但我不确定为什么两个模型都没有获得新的类方法。
PS - 我尝试过重写模块而不使用ActiveSupport::Concern
(只是因为我使用的是旧的 Rails 版本并且我在黑暗中拍摄)使用:
但我仍然有同样的问题。
编辑
我最初忽略了这一点(只是试图提出最简单的问题),所以我向那些想早点提供帮助的人道歉。但quxable.rb
实际上看起来像这样:
所以我猜我创建了某种循环依赖项,用 Class 对象定义了一个常量。任何人都可以确认吗?奇怪的是,它只是通过没有在第二个访问的类上定义类方法而静默失败。我不知道这是为什么?
ruby-on-rails - 在 Rails 中使用关注点和模块有什么区别?
刚才我开始在 Rails 中使用 Concerns,但我怀疑我们为什么要关注,因为我们可以在模块和混合概念上实现相同的目标。所以请任何人告诉我们shat是使用关注点而不是使用模块。