在 Ruby 中编写一个在不同行获取参数的方法

2024-01-26

在使用 Rails 时,我发现可以调用这样的方法。

lot = Lot.new do |u|
    u.grade_id = grade.id
    u.company_id = company.id
    u.type_id = type.id
    u.sale_id = sale.id
    u.quantity = lot[6]
    u.price = lot[3]
    u.info = lot[4]
    u.remark = lot[5]
end

正如您所看到的,我在不同的行上传递参数。

我需要编写一些需要很多参数的方法,并且认为如果我可以像这样调用我的方法会更好。有人可以告诉我如何编写以类似方式接受参数的方法吗?一些指南/文档的链接会有很大帮助。这就是 Ruby 中的代码块吗?


上面的例子没有传递任何参数。您只需调用一个方法并使用一个块来生成新创建的实例。

这段代码

lot = Lot.new do |u|
    u.grade_id = grade.id
    u.company_id = company.id
end

可以写成

lot = Lot.new
lot.grade_id = grade.id
lot.company_id = company.id

第二个示例不使用块。

如果您希望对象在初始化时接受块,请在您的对象中添加以下代码行initialize file.

yield self if block_given?

这是一个例子

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

在 Ruby 中编写一个在不同行获取参数的方法 的相关文章

  • 如何在 rake 任务中包含 ActionMailer 类?

    我想在我的 rake 任务中使用 ActionMailer 以便在特定时间向人们发送电子邮件 我在 app mailers 文件夹中编写了一个邮件程序类 如下所示 class AlertsMailer lt ActionMailer Bas
  • 输出到控制台,同时保留 ruby​​ 中的用户输入

    我有一个 ruby 脚本 它同时异步接收和显示来自服务器的消息 并允许用户在控制台上输入 当收到消息时 当前正在将其写入用户正在键入的内容的中间 输入本身并没有乱码 但看起来很糟糕 理想情况下 它将保存用户当前的输入 输出消息 然后在下一行
  • Ruby 电子表格 gem,如何居中对齐数字

    我在用着http spreadsheet rubyforge org http spreadsheet rubyforge org生成电子表格 但我遇到了一些问题 我正在打开现有工作簿并向其中添加数据 我已经设法在某种程度上使数字格式正常工
  • Ruby:如何计算相对于另一条路径的路径?

    假设我知道我开始的绝对路径和我试图到达的绝对路径 first first path second second path 现在我想弄清楚如何构建一条相对于第一个路径 例如 answer should be first path second
  • Ruby 代码到 JAR

    我希望能够将 ruby 程序编译为 java JAR 程序 我研究过 JRuby 看到了几个能够 eval ruby 代码的 Java 应用程序示例 但是是否有更优雅的解决方案允许简单地用 ruby 编写所有内容 然后将其直接编译为 JAR
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • 如何从 Ruby 检查具有特定 pid 的进程是否正在运行?

    如果有多种方法 请列出 我只知道一个 但我想知道是否有一种更干净的 Ruby 方式 之间的区别Process getpgid and Process kill方法似乎是当 pid 存在但由另一个用户拥有时发生的情况 Process getp
  • Ruby on Rails 最酷的功能是什么,为什么选择它? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我问这个问题之前 我浏览了 SO 上 Ruby on Rails 的搜索结果 找不到太多 但以下 在此页面上找到 https stackove
  • ruby on Rails,会话过期通知

    我正在使用 ruby 1 9 3 和 Rails 3 2 我的实际会话处理如下所示 会话助手 def sign in user cookies remember token value user remember token expires
  • 方法调用中是否有记忆约定?

    我想避免在方法调用中重新评估值 直到现在 我一直在这样做 def some method some method begin lot s of code end end 但它最终变得非常丑陋 在一些代码中 我看到类似以下内容 def som
  • ruby 的 String .hash 方法如何工作?

    我只是红宝石的新手 我见过一个字符串方法 String hash 例如 在irb 我试过了 gt gt mgpyone hash returns gt 144611910 这个方法是如何工作的 The hash方法是为所有对象定义的 看文档
  • 如何在 gem 的示例脚本中使用 pry-byebug ?

    我正在制作我的第一个 gem 它不是 Rails 应用程序 而是一个带有一些 AI 的 tic tac toe 库 这样我就可以与一个永远不会输的计算机对手比赛 并在可能的情况下强行获胜 现在我正在尝试调试人工智能中的攻击策略 但我似乎无法
  • 使用复选框过滤列表

    我有一个电影列表及其评级 在我的页面顶部 我有一个表单 其中提供了一个复选框列表 其中显示了每个可用的评级 G PG 13 等 一旦用户单击复选框并点击提交 我只想显示所选的电影 在我的索引方法中 我有一个名为的实例变量 filtered
  • 为什么 rand() 总是返回相同的数字?

    我在用 兰特 200 在我的 Rails 应用程序中 当我在控制台中运行它时 它总是返回随机数 但如果我在应用程序行中使用它 index rand 200 索引总是相同的号码 为什么会这样以及如何克服这个问题 简单的伪随机数生成器实际上生成
  • 将 ruby​​ 类转换为模块比使用改进更好的方法?

    Module refine http ruby doc org core 2 0 0 Module html method i refine方法接受一个类和一个块并返回一个细化模块 所以我想我可以定义 class Class def inc
  • Ruby 的字符串并置功能的官方文档在哪里?

    我最近意识到 如果你并置一系列 Ruby 字符串文字 例如 a b c 它相当于这些字符串文字的串联 但是 我在任何地方都找不到这种语言功能的记录 我使用术语 并置 和 串联 进行搜索 但只在几个 StackOverflow 响应中找到了对
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除
  • 两个 ruby​​ 进程之间的通信可能/容易吗?

    如果我有一个 ruby 脚本Daemon顾名思义 它作为守护进程运行 监视系统的某些部分并能够执行需要身份验证的命令 例如更改权限 是否有一种简单的方法来拥有第二个 ruby 脚本 例如client 与该脚本通信并向其发送命令 询问信息 我
  • Emacs、ruby:将 do 结束块转换为大括号,反之亦然

    我经常发现自己转换这样的代码 before do something end to before something 有没有办法在 emacs 中自动执行此任务 我使用 ruby mode 和 rinary 但它们在这里没有太大帮助 rub
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不

随机推荐

  • sed 中的反向引用返回错误值

    我正在尝试使用 sed 替换表达式 正则表达式在 vim 中有效 但在 sed 中无效 我用斜杠替换数字前的最后一个破折号 所以 www file name 1 应该返回 www file name 1 我正在使用以下命令 但它一直输出 w
  • Apache Camel HTTP 显示请求和响应

    我正在使用 Apache Camel 将数据从 CSV 文件加载到 Web 服务 无论如何我可以显示请求和响应 下面是路由配置 我从数组中拆分并聚合 100 个项目 以作为 POST 正文发送 from fileLocation unmar
  • SqlAlchemy TIMESTAMP“更新时”额外

    我在 python3 4 3 上使用 SqlAlchemy 来管理 MySQL 数据库 我正在创建一个表 from datetime import datetime from sqlalchemy import Column text cr
  • 今日小部件扩展高度 - iOS10

    今日小部件视图模式的高度无法设置为紧凑模式 无论我设置什么值 它将小部件的高度设置为默认值 扩展模式工作完美 并且值已正确设置并反映在小部件中 我已经在 viewDidLoad 方法中添加了这一行 self extensionContext
  • 生产中使用 Flask-oauthlib 或 authlib?

    我刚刚在我正在构建的网站上使用了flask oauthlib 但是 我注意到该项目的首页有一个警告 要求改为使用 authlib 如果您在生产中使用flask oauthlib 您是否计划迁移到authlib 有谁知道一个完成此迁移的简单项
  • 流式源的查询必须使用 writeStream.start() 执行;

    我正在尝试在 Spark 中读取来自 kafka 版本 10 的消息并尝试打印它 import spark implicits val spark SparkSession builder appName StructuredNetwork
  • 对于 Android 4.4 及以上版本,使用 Crosswalk 有什么真正的好处吗?

    Crosswalk 插件对于为混合应用带来巨大的性能提升非常重要 但问题是 一旦添加 APK 就会变得巨大 给安装程序增加了大约 15 18MB 的大小 那么 将人行横道添加到 Android 4 4 及更高版本的安装程序中是否有任何真正的
  • 类实例实现,初始化实例 - 来自 SICP python

    我试图理解Python类系统实现中的初始化函数 摘自本书 SICP python 参考书籍部分 http www inst eecs berkeley edu cs61a sp12 book objects html instances T
  • 指向常量的指针

    众所周知 通过引用将参数 特别是像结构体一样大的参数 传递给函数是一种很好的做法 为了应用 最小特权 原则 如果该函数不应该更改这些传递变量的值 那么我们需要将它们的引用作为指向常量的指针传递 我的问题是 作为指向常量的指针传递不能防止更改
  • 如何以编程方式绑定 NSCollectionView 的视图子类?

    我已经成功创建了一个 NSCollectionView 并向 IB 中的视图原型添加了一个标签 绑定到我所表示的对象的属性 我现在想以编程方式创建一个 NSButton 和 NSTextField 并将 NSTextField 绑定到我所表
  • 如何忽略 functools 中的参数。 lru_缓存?

    这是我想要通过缓存增强的功能的框架 因为进行 RPC 远程过程调用 涉及到其他主机的 TCP 连接 def rpc rpc server rpc func arg return rpc server do rpc rpc func arg
  • iOS 8.3 - 元视口初始比例低于 1.0 会导致方向变化时出现奇怪的内容缩放

    将我的 iOS 设备升级到 iOS 8 3 后 我注意到元视口初始缩放属性出现了一些奇怪的行为 如果我将初始比例设置为 1 0 以下 并在浏览网页时旋转设备 则整个内容将逐渐变小 最终浏览器将崩溃 我注意到 每次方向变化时内容变小的程度与您
  • Firebase 实时数据库:如何在键值对上正确建立索引

    Question 我有这个 Firebase 实时数据库 groupUsers group1key user1key admin group2key user1key admin user2key readonly user3key rea
  • #1005 - 无法创建表“table_name”(错误号:150)

    这是我的表格 DROP TABLE IF EXISTS tbl comments CREATE TABLE IF NOT EXISTS tbl comments id int 11 NOT NULL auto increment topic
  • 在 python 端动态调整 kivy 标签(和按钮)的大小

    如何在运行时根据文本量动态调整标签或按钮的大小 特别是文本大小和高度 我知道这个问题已经通过以下方式得到了回答 动态调整滚动视图中标签的大小 https stackoverflow com questions 19932614 dynami
  • 如何在Excel VBA中添加到当前单元格选择

    因此 我有一个循环检查列中的每个单元格并找到特定日期 当前是前一周的星期一 我的代码现在确实正确选择了它们 但我希望它保留之前的选择 以便最终选择该规范的所有单元格 Public Function LastMonday pdat As Da
  • 在 setup.py 中添加自定义轮文件作为依赖项?

    我正在开发一个项目 其中一个依赖项实际上是 whl这不在 pypi 上 即我必须直接从作者那里下载轮子并且pip直接安装 在我的setup py文件 有没有办法做类似的事情 install requires library whl matp
  • 如果检测到越界,则禁用平移手势

    我有一个 UIView 我试图在屏幕上上下移动 但是我只想让它平移 这样当视图处于正常位置 0 0 时 您就无法向下拖动视图 我尝试检测识别器的中心何时不是视图高度的一半 但是视图是不可移动的 并且中心始终是高度的一半 在本例中为 230
  • SQL 代理命令行未保存

    我有一个 SSIS 包 我正在尝试安排时间 我在 SQL Server 代理下创建了一个新作业 在作业步骤的 命令行 选项卡上 我选择 手动编辑命令行 当我在作业步骤中从一个选项卡切换到另一个选项卡时 更改会被保留 但每当我退出并保存作业时
  • 在 Ruby 中编写一个在不同行获取参数的方法

    在使用 Rails 时 我发现可以调用这样的方法 lot Lot new do u u grade id grade id u company id company id u type id type id u sale id sale i