1
我正在使用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 %>
問題是當找到單個對象(來自.find
)時.versions
工作。然而,當對象的數組(從.find_all_by
)傳遞給.versions
它返回該錯誤
undefined method `versions' for #<Array:0x007f859d37eb30>
我「固定」它3分鐘做這個。非常感謝你的幫助。 – user3754124 2014-10-08 15:04:37
我剛剛發現這個解決方案稍微打敗了這個問題。如果我刪除了一個line_item,然後在所有找到的line_items上調用.versions,它顯然不會顯示已刪除的Line_item。 – user3754124 2014-10-09 14:53:30