我正在使用ruby在rails上编写代码,我在表中创建动态行,涉及.each
循环。我想传递.each
循环引用对象,但它给了我一个错误。
以下是代码:
<% 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 %>
:ndetails=>wf
给出错误。 wf未被识别为要发送的正确语法。
请提出建议。
错误是:
undefined local variable or method `id' for #<ComRuleManagement::WorkflowExecutionObject:0x00003da1751528>
答案 0 :(得分:0)
当你这样做时
<%= button_to "Details",{ :controller => "pages", :action => "mainpage",:rulesetinstance=>rInsId, :ndetails=>wf} %>
您正在构建一个html标记。 (因为button_to
是一个html帮助器)。您传递的额外选项(在此实例中为“:rulesetinstance”和“:ndetails”)将用于在元素中创建额外属性,如rulesetinstance="123"
。但是,如果你传递了wf对象,那么rails会调用它上面的to_s,你最终会得到类似于ndetails="#<Wf:0x7f518dfc6e68>"
的东西。这几乎肯定不是你想要的html元素。你应该调用另一个wf对象的方法吗?