在使用 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(使用前将#替换为@)