Ruby on rails RubyonRails中的每个循环引用对象

Ruby on rails RubyonRails中的每个循环引用对象,ruby-on-rails,foreach,Ruby On Rails,Foreach,我正在用RubyonRails编写代码,在表中创建动态行,其中包含一个。每个循环。我想传递。每个循环引用对象,但它给我一个错误 代码如下: <% pworkflows.workflow_executions_list.each do |wf| %> <tr> <td><%= wf.execution_status %></td> <td> <% if(wf.start_timestamp

我正在用RubyonRails编写代码,在表中创建动态行,其中包含一个
。每个
循环。我想传递
。每个
循环引用对象,但它给我一个错误

代码如下:

<% pworkflows.workflow_executions_list.each do |wf| %>
  <tr>
    <td><%= wf.execution_status %></td>
    <td>
      <% if(wf.start_timestamp != nil) %>
        <%= wf.start_timestamp.localtime; %> UTC
      <% end %>
    </td>
    <td><%= wf.close_status %></td>
    <td><%= wf.execution.run_id %></td>
    <td><%= button_to "Details",{ :controller => "pages", :action => "mainpage",:rulesetinstance=>rInsId, :ndetails=>wf} %></td>
  </tr>
<% end %>
当你这么做的时候

<%= button_to "Details",{ :controller => "pages", :action => "mainpage",:rulesetinstance=>rInsId, :ndetails=>wf} %>
“页面”、:action=>“主页”、:rulesetinstance=>rInsId、:ndetails=>wf}%>

您正在构建一个html标记。(因为
按钮\u to
是html帮助程序)。在此实例中,您传递的额外选项“:rulesetinstance”和“:ndetails”将用于在元素中生成额外属性,如
rulesetinstance=“123”
。但是,如果您将wf对象传递给它,rails将调用它上的_s,您将得到类似以下内容的结果
ndetails=“#”
。这几乎肯定不是您想要的html元素。是否应该调用wf对象的另一个方法?

错误是什么。你能分享一下吗。另外,请确认pworkflows是一个数组或对象。
pworkflows.workflow\u executions\u list
的值是多少?是的,pworkflows是一个包含工作流执行列表的对象,该列表是一个对象数组。该错误指的是哪一行?我认为这就是问题所在。错误也说明了这一点。它可以很好地处理字符串值。但是,有没有一种方法可以在单击按钮时传递该对象,因为我想在另一部分中显示该对象的详细信息。您需要考虑这里发生了什么:用户单击某个对象,这会向您的服务器生成另一个请求,服务器生成一些html,然后您可以显示整个页面(重定向)或者替换部分页面(ajax)。因此,如果您正在与服务器通信,则可以使用参数进行通信。发送对象的id是告诉服务器您希望它使用哪个对象来进行部分复制的最有效的方法。
<%= button_to "Details",{ :controller => "pages", :action => "mainpage",:rulesetinstance=>rInsId, :ndetails=>wf} %>