当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 为什么每个方法都需要将循环的值赋给变量?

来源:互联网 收集:自由互联 发布时间:2021-06-23
在Rails上工作,发现我对每种方法的理解缺乏知识. 不知道为什么每个方法都需要变量| message | % @messages.each do |message| % h2%= message.title %/h2 %= link_to "View Message", message_path(message), class: "btn
在Rails上工作,发现我对每种方法的理解缺乏知识.

不知道为什么每个方法都需要变量| message |

<% @messages.each do |message| %>
    <h2><%= message.title %></h2>
    <%= link_to "View Message", message_path(message), class: "btn btn-default" %>
<% end %>
在循环遍历@messages时,您需要某种方式来引用每个元素以使其可用于您的代码. Ruby通过将每个元素一次作为变量传递给块来完成此操作.管道语法在Ruby中用于命名任何块上下文中的块变量,而不仅仅是每个块上下文.

当你在@messages上迭代时,每个元素应该被称为消息,Ruby不会自己决定.您需要明确地做出该决定并在管道中分配变量名称.您不需要调用变量消息.你可以称之为hot_dog.但是你需要将元素分配给某个东西,否则你将无法访问它以及循环的重点是什么?

<% @messages.each do |hot_dog| %>
    <h2><%= hot_dog.title %></h2>
    <%= link_to "View Message", message_path(hot_dog), class: "btn btn-default" %>
<% end %>
网友评论