Ruby on rails Rails 3.2+;Ruby 1.9+;块变量

Ruby on rails Rails 3.2+;Ruby 1.9+;块变量,ruby-on-rails,ruby,variables,block,instance,Ruby On Rails,Ruby,Variables,Block,Instance,现在Rails的标准实践是什么?在Ruby 1.9之前,我可以这样做 <% @records.each do |@record| %> <%= form_tag "/do/something" do %> <%= text_field 'record', 'text' %> <% end %> <%= a_display_record_helper %> <%= render :partial =>

现在Rails的标准实践是什么?在Ruby 1.9之前,我可以这样做

<% @records.each do |@record| %>
  <%= form_tag "/do/something" do %>
    <%= text_field 'record', 'text' %>
  <% end %>
  <%= a_display_record_helper %>
  <%= render :partial => "record_partial" %>
<% end %>

“记录部分”%>

但是现在我们不能在块中使用实例变量。那么,对于包含表单、视图帮助程序和部分的块,标准做法是什么呢?

ruby 1.9
中,块变量名不能以
@
开头:

<% @records.each do |record| %>
  <%= form_tag "/do/something" do %>
    <%= text_field 'record', 'text' %>
  <% end %>
  <%= a_display_record_helper %>
  <%= render :partial => "record_partial" %>
<% end %>

“记录部分”%>

您仍然可以将记录变量作为参数传递给助手,也可以将其作为部分变量传递给助手。无论如何,如果您这样做,就更容易理解发生了什么。

但是现在我们不能在块中使用实例变量了
-什么?在Ruby1.9中,你会得到一个“形式参数不能是实例变量”的错误,这不是一个拼写错误。这是Ruby 1.8.7的有效语法。是的,我知道你不能。这不是我的问题,是的。我只是想知道什么是表单、助手和partials的标准实践。我想这就是我写的。