我正在使用 paper trail gem 来跟踪订单 Web 应用程序的版本更改。我无法显示 has_many 版本
订购型号:
class Order < ActiveRecord::Base
has_paper_trail
has_many :line_items, dependent: :destroy, inverse_of: :order, order: "position", autosave: true
end
订单项型号:
class LineItem < ActiveRecord::Base
belongs_to :order, inverse_of: :line_items
has_paper_trail
end
订单控制器:
@order = Order.find(params[:id])
@versions = PaperTrail::Version.where(item_id: params[:id]).order('created_at ASC')
@line_items = LineItem.find_all_by_order_id(params[:id])
@line_item_versions = @line_items.versions
历史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 %>
问题是找到.versions
单个对象(来自.find
)时的工作。但是,当将对象数组(来自.find_all_by
)传递给.versions
它时,它会返回此错误
undefined method `versions' for #<Array:0x007f859d37eb30>