什么是| f | 在Ruby中做什么?

Abe*_*Abe 3 ruby model ruby-on-rails

可能重复:
在Ruby中,垂直线是什么?

这个问题似乎是谷歌证明,我不知道Ruby.

比较|f|模型描述中线的末尾处的不同存在导致不显示内容.我只是想修复一个页面中的错误,该错误不能访问表中的某些信息.

" 在Ruby中做什么|| =做什么 " ||似乎没有帮助.

这是来自损坏的.rb文件的可疑代码:

comma :show_mytable do |f|
    table2 :field2
    table3 :field3
end
Run Code Online (Sandbox Code Playgroud)

但这似乎有效,在激活时显示所需的字段:

comma :show_mytable do
    table2 :field2
    table3 :field3
end
Run Code Online (Sandbox Code Playgroud)

可以|f|防止输出显示?

Jos*_*osh 5

在您的代码中,您将两个变量传递给该comma方法.第一个是调用的符号:show_mytable,第二个是块.它与作为条件赋值的|| =语法无关.

以下是如何在ruby中使用块的示例:

array = [1, 2, 3, 4]
array.each do |element|
  element + 1
end 
  #=> 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

当你使用循环(each在这种情况下)时,你可以传递一个变量(element)来为你提供一种引用循环中当前元素的方法.

您还可以使用大括号,而不是doend这样的:

array = [1, 2, 3, 4]
array.each { |e| e + 1 } 
  #=> 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

由于你没有在这里循环任何东西,我没有看到|f|你的例子中你需要的任何理由.