ruby-on-rails - 解释 Ruby on Rails 中的迭代器语法

标签 ruby-on-rails ruby syntax iterator

我开始学习 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

最佳答案

方法可以采用称为“ block ”的结构。这些是传递给方法的匿名方法。

另一种语法是:

method_call { |var| do_something(var) }

基本上,您是说对于迭代中的每个项目,将其命名为“var”并对该项目执行某些操作。该方法只是调用您传入的 block ,因为它向它“产生”项目。

这有帮助吗?

编辑:在您的示例中,您正在以一种有趣的方式使用迭代器模式...可能只将一个 format 对象传递到您的 block 中,因此您可以然后告诉它要处理哪些格式,以及当你看到它时该怎么做。

换句话说,他们正在使用该模式来创建某种 DSL,让您可以配置您要响应的内容。

关于ruby-on-rails - 解释 Ruby on Rails 中的迭代器语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293120/

相关文章:

ruby-on-rails - 使用 Mechanize 的 xpaths 和 html 解析

ruby-on-rails - 在 Rails 助手中访问请求对象

arrays - for i in ${VAR} 如何在 bash 中工作,而不是 for i in "${VAR[@]}"?

c++14 - vec.begin() 和 begin(vec) 之间有什么区别

c++ - 参数和成员变量同名不好吗?

ruby-on-rails - 使用列标题使用 roo 解析 excel 工作表 - Ruby

ruby-on-rails - rails : How can i make image_tag use the fqdn?

ruby-on-rails - Rails cron 不发送电子邮件

javascript - Rails 根据集合选择的值呈现部分

javascript - 是否有与 Ruby 的 andand 等效的 Javascript?