我正在使用Rails 3.2。我有以下代码:如何迭代实例变量中的实例变量?
# transports_controller.rb
@transports = %w(car bike)
@transports.each do |transport|
instance_variable_set("@#{transport.pluralize}",
transport.classify.constantize.all)
end
# transports/index.html.erb
<% @transports.each do |transport| %>
<h1><%= transport.pluralize.titleize %></h1>
<% @transport.pluralize.each do |transport_item| %>
<%= transport_item.name %><br>
<% end %>
<% end %>
控制器代码是正确的,但视图代码是错误的。 @transport.pluralize.each
不能从字面上调用。预期的结果是:
<h1>Cars</h1>
Ferrari<br>
Ford<br>
<h1>Bikes</h1>
Kawasaki<br>
Ducati<br>
我该怎么做?
我得到你没有得到你的预期结果,但你得到了什么?一个错误?输出错误顺序?哪一个给'@ transport.pluralize'的呼叫失败了?需要更多一点继续下去。 – theIV
不能从字面上调用'@ transport.pluralize'。我没有测试过这个,但我相信这不是写它的方法。 – Victor
你是在说循环?如果是这样,就像你做'instance_variable_set'一样,有一个'instance_variable_get'。那是你在做什么? – theIV