我开始学习 Ruby on Rails,发现自己对语法感到困惑,所以我必须阅读一些 Ruby 语法。我从中学到了语法http://www.cs.auckland.ac.nz/references/ruby/doc_bundle/Manual/man-1.4/syntax.html:
method_call do [`|' expr...`|'] expr...end
他们称之为迭代器。我了解迭代器通过循环运行,但我不明白我应该如何准确地阅读此内容或此语法中发生的情况。我经常在 RoR 的截屏视频中看到这种情况,这些话很有道理,但我实际上不知道发生了什么。有人可以向我解释一下吗?
编辑:示例
respond_to do |format|
format.json
format.xml { render :xml => @posts }
end
方法可以采用称为“块”的构造。这些是传递到方法中的匿名方法。
另一种语法是:
method_call { |var| do_something(var) }
基本上,您是说对于迭代中的每个项目,将其命名为“var”并对该项目执行某些操作。该方法只是调用您传入的块,因为它“产生”了项目。
这有帮助吗?
edit:在您的示例中,您以一种有趣的方式使用迭代器模式......可能只传递一个format
对象到你的块中,这样你就可以告诉它要处理哪些格式,以及当你看到它时要做什么。
换句话说,他们正在使用该模式来创建某种 DSL,让您可以配置响应内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)