创建自定义集合方法

2024-03-19

我正在尝试创建几种方法来操作对象集合。

我的控制器中有以下语句

  def show
    @big = Configuration.find(params[:id]).elements
    @custombig = @big.getchanged
  end

在配置模型中我有:

require 'lib/validation_rules'
class Configuration < ActiveRecord::Base
  include ValidationRules

在我的 lib 文件夹中,有一个名为validation_rules 的文件:

module ValidationRules
  def getchanged()
    names =[]
    self.each do |pp|
      names << pp.name
      return names
    end
  end
end

这个想法很简单。相同的模型将需要很多配置规则,我希望将其排除在控制器和模型之外(当我说很多时,我的意思是大约 200 个)。

上面代码的问题是,当我调用它时,它告诉我该方法不存在,而且似乎发生这种情况是因为 @big 是一组配置,而不仅仅是一个配置对象。 当我在单个配置对象上尝试相同的方法时,它工作正常,但在这个版本中,它不起作用。

如何让 Rails 将这个“自定义”方法库添加到默认的数组库中?

根据记录,上面的方法只是一个测试,并不完全是我需要做的,代码所做的不是问题,但 Rails 在抛出错误之前甚至没有查看那里。

非常感谢你的帮助!


您可以扩展 Enumerable 模块,该模块包含在 Array 等集合类中,并定义了“any?”等方法。和“收集”。例如:

module Enumerable
  def do_something
    self.each do |item|
      yield(item)
    end
  end
end

letters = ['a', 'b', 'c']
letters.do_something { |letter| p letter }

我的 do_something 方法实际上什么都不做——调用它就像调用“each”。当然,您可以添加自己的逻辑以达到所需的结果。

请记住,包括“Enumerable”在内的任何内容现在都将具有 do_something 方法,因此该方法应该编码为能够与任何类型很好地配合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建自定义集合方法 的相关文章

随机推荐

  • 是否可以在 C# 类库中创建 Windows 窗体?

    我一直在用 C 构建 DLL 类库 用作提供自定义 API 的应用程序的附加组件 到目前为止 它们主要包括与数据库 计算 磁盘操作等的接口 我很想知道是否可以在 DLL 类库内构建和显示 Windows 窗体 显示文本框 按钮等 I tri
  • 如果“cargo build”比直接运行 rustc 慢,为什么我应该使用 Cargo?

    我创建了一个简单的 hello world 程序 fn main println Hello world 编译代码时使用rustc vs cargo build 货物命令显得较慢 它需要1 6s for cargo build vs 1s
  • 我们如何在Python中通用地使用sin、cos、tan(包括用户定义的类型)?

    编辑 让我尝试改写并改进我的问题 旧版本附在底部 我正在寻找一种以类型通用的方式表达和使用自由函数的方法 例子 abs x maps to x abs next x maps to x next at least in Python 3 x
  • 如何使用nosetests测试函数是否在函数内被调用

    我正在尝试为项目设置一些自动单元测试 我有一些函数 作为副作用 它们偶尔会调用另一个函数 我想编写一个单元测试来测试第二个函数是否被调用 但我被难住了 下面是伪代码示例 def a self data self get if len dat
  • FIREBASE 警告:无效的查询字符串段:[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在 Firebase 日志控制台中不断收到这些警告 FIREBASE 警告 无效的查询字符串段 我检查了所有内容 但找不到一些原
  • Reactjs 意外的标记“<”

    我用react redux redux创建了reactjs应用程序 启动reactjs项目时 在索引文件的第13行出现意外的令牌错误 索引文件如下 ERROR in src index js Module build failed Synt
  • VHDL 中的进程是可重入的吗?

    一个进程是否可以连续运行两次或多次VHDL 如果在进程的顺序执行未完成的情况下发生另一个事件 在敏感信号列表上 会发生什么 有可能还是我的VHDL流程中的模型完全错误 进程运行时不会发生任何事件 当进程被事件唤醒时 它会运行到完成 结束进程
  • 如何通过 C# 代码以编程方式构建解决方案文件?

    我有一个包含许多项目的大型解决方案 其中一个是安装项目 还有许多当前版本存储在单独的分支中 我有一个曾经在 NET 2 中工作的构建工具 但自从我们升级到 NET 4 后就不再工作了 在内部 新的 NET 4 版本的构建工具使用Micros
  • 如何估计 Spark DataFrame 中每列的大小(以字节为单位)?

    我有一个非常大的 Spark DataFrame 其中有许多列 我想对是否将它们保留在我的管道中做出明智的判断 部分取决于它们有多大 我所说的 有多大 是指缓存此 DataFrame 时 RAM 中的大小 以字节为单位 我希望这是对处理此数
  • Spring Data Elasticsearch 通配符搜索

    我正在尝试寻找这个词blue在下面的文本列表中 蓝宝石 蓝 蓝色 蓝色 蓝色 蓝色 蓝黑 蓝 宝石蓝 黑 绿 蓝 宝石蓝 SearchQuery searchQuery new NativeSearchQueryBuilder withIn
  • Java SDK for REST API 服务的错​​误处理

    我们正在构建一个 Java SDK 以简化对提供 REST API 的服务之一的访问 该SDK供第三方开发者使用 我正在努力寻找在 SDK 中实现错误处理的最佳模式 以更适合 Java 语言 假设我们有其余端点 GET photos pho
  • C++ 程序崩溃,退出代码:9 (SIGKILL)

    我的应用程序崩溃并显示退出代码 9 SIGKILL 我从未运行过任何可以终止正在运行的进程的命令 例如 kill 9 pid 或 pkill 进程名称 这种情况下应该从哪里开始调试呢 我尝试在程序崩溃时转储堆栈跟踪 但发现无法捕获 SIGK
  • 从矩阵中提取总和最大的元素而不重复行或列的算法?

    我有一个数字矩阵 我需要提取具有最大可能总和的元素集 但受到任何 2 个元素不能来自同一行或同一列的约束 是否有任何有效的算法 以及 R 是否有该算法的实现 例如 如果矩阵是 使用 R 的矩阵表示法 1 2 3 1 7 1 9 2 8 4
  • 如何使“stepfun”类的两个阶跃函数(R-stepfun)相加?

    从例子来看here https stackoverflow com a 69738109 5784831我试图将总和作为 stepfun 类 我想 as stepfun是正确的选择 但我的想法行不通 怎么了 y1 lt c 0 1 2 0
  • R 中的 read.csv 无法正确读取列名

    我有一个 csv 文件 我正在尝试将其内容读入 R 但是我的列名称无法正确显示 它在第一列的名称中显示一些奇怪的字符 请注意 任何我尝试读入的 csv 文件 请参阅下面的 R 代码 gt mycsvfile read csv C Users
  • 如何检查 JavaScript 变量是否未定义? [复制]

    这个问题在这里已经有答案了 我尝试过的事情似乎不起作用 if lastName undefined if lastName undefined if undefined lastName var lastname Hi if typeof
  • Android - 获取父布局的高度

    我想确定必须添加视图的父布局的可用高度和宽度 我在布局上使用了很多方法 例如 布局 getHeight 布局 getRootView getHeight 所有这些方法都返回 0 零 作为结果 我的主要要求是能够为视图提供宽度 该宽度为布局宽
  • 在 Ubuntu 上为 Open JDK 7 安装 JNLP

    如何在 Ubuntu 计算机上让 JNLP 适用于 OpenJDK 7 我正在尝试将源代码链接到http www bugaco com bioinf clusterer http www bugaco com bioinf clustere
  • 如何使用 EL + JSTL 将任意对象转换为 String? (调用 toString())

    有什么方法可以使用 EL 和 JSTL 对对象调用 toString 吗 我需要枚举的字符串表示形式作为 JSP EL 表达式中映射中的索引 我希望类似 object 会像在java中一样工作 但是EL不太好 而且似乎没有任何函数可以做到这
  • 创建自定义集合方法

    我正在尝试创建几种方法来操作对象集合 我的控制器中有以下语句 def show big Configuration find params id elements custombig big getchanged end 在配置模型中我有