我有两个数组,我从控制器返回,如下所示:
@array1 = []
@array2 = []
@person_stat = PersonStats.select("id").map(&:id)
for idx in 0 ... @person_stat.size
@array1[idx] = Person.find(@person_stat[idx])
@array2[idx] = Array2.id_to_array2(@array[idx].id)
end
return @array1, @array2
Run Code Online (Sandbox Code Playgroud)
但现在我需要在我的.html.erb文件中打印一个表.我的猜测是:
<%= @array1.each, @array2.each do |a1, a2| %>
<tr><td><%= a1.name %></td><td><%= a2.type %></td></tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但这不正确.任何帮助将不胜感激.
我对 ruby on Rails 还很陌生。我有一个返回对象数组的方法。每个对象都有一个具有关联值的属性列表。下面是一个对象的示例:
#<People id: 1, name: "Person1", age: "10">
在我的控制器中,我将这个对象数组返回为@array. 然后在我的.erb文件中我有以下代码行
<% @array.each do |a| %>
<tr><td><%= a.name %></td></tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的代码时,我收到一条错误消息undefined method 'name'。
我知道 name 属性在我的数组中,因为就在我返回之前,@array我这样做了raise @array[0].name并且出现了正确的名称。
任何帮助将不胜感激。
编辑:不幸的是,我无法共享我的控制器或 Person 类,因为它是专有的,但我可以向您展示以下输出:
<% @array.each do |a| %>
<tr><td><%= a %></td></tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
以上输出:
[0, #<People id: 1, name: "Person1", age: "10">]
目前数组中只有 1 个对象。希望这有帮助。再次,任何帮助将不胜感激。
编辑2:我认为这可能与我如何向@array. 这就是我添加元素的方式@array:
for idx in 0 ... …Run Code Online (Sandbox Code Playgroud)