Ruby on rails 纸迹显示有许多对象
我正在使用纸质跟踪gem跟踪orderweb应用程序的版本更改。我在显示有多个版本的文件时遇到问题 订单型号:Ruby on rails 纸迹显示有许多对象,ruby-on-rails,paper-trail-gem,Ruby On Rails,Paper Trail Gem,我正在使用纸质跟踪gem跟踪orderweb应用程序的版本更改。我在显示有多个版本的文件时遇到问题 订单型号: class Order < ActiveRecord::Base has_paper_trail has_many :line_items, dependent: :destroy, inverse_of: :order, order: "position", autosave: true end 历史记录html: <% @line_item_versions.
class Order < ActiveRecord::Base
has_paper_trail
has_many :line_items, dependent: :destroy, inverse_of: :order, order: "position", autosave: true
end
历史记录html:
<% @line_item_versions.each_with_index do |version, index| %>
<b>Version: </b><%= index + 1 %><br/>
Event ID: <%= version.id %><br/>
<b>Target:</b> <%= version.item_type %>
<small>(id: <%= version.item_id %>)</small>; <b>action</b> <%= version.event %>;<br/>
<% end %>
您正在定义:
@line_items = LineItem.find_all_by_order_id(params[:id])
这意味着@line\u items
是多个行项目记录的数组。然后,你打电话:
@line_item_versions = @line_items.versions
但是.versions
方法是LineItem的一个实例方法(一个行\u项有多个版本
)。这会导致数组的未定义方法“版本”出现错误(@line\u items
此处是数组)
要解决此问题, 我认为你应该做以下事情(但是有很多选择,取决于你想做什么):
版本:
事件ID:
目标:
(身份证号码:);行动
我只是用3分钟的时间“修复”了它。非常感谢你的帮助。我刚刚发现这个解决方案稍微解决了这个问题。如果我删除一个行项目,然后对所有找到的行项目调用.versions,它显然不会显示删除的行项目。
undefined method `versions' for #<Array:0x007f859d37eb30>
@line_items = LineItem.find_all_by_order_id(params[:id])
@line_item_versions = @line_items.versions
<% @line_items.each do |line_item| %>
<%= line_item.name %>
<% line_item.versions.each_with_index do |version, index| %>
<b>Version: </b><%= index + 1 %><br/>
Event ID: <%= version.id %><br/>
<b>Target:</b> <%= version.item_type %>
<small>(id: <%= version.item_id %>)</small>; <b>action</b> <%= version.event %>;<br/>
<% end %>
<% end %>