簡體   English   中英

紙跡版本控制

[英]Paper trail versioning

我正在嘗試使用Paper Trail列出版本,該用戶將能夠看到版本之間的差異並返回到較早的版本。

我已經找到了如何列出和鏈接到該版本的方法,但是由於某些原因,當我嘗試對后兩個版本進行驗證時出現錯誤。 它說:nil:NilClass的未定義方法'reify'

有誰知道,該怎么辦以及diff版本如何?

# controller
def edit
@page = Page.find(params[:id])
@versions = @page.versions
@page = @page.versions[params[:version].to_i].reify if params[:version]
end

# Model
class Page < ActiveRecord::Base
validates :title, :presence => true
belongs_to :category
has_paper_trail
end

# View
<% @versions.each do |version| %>
<ul>
<li><%= version.id %> <%= link_to "Previous version", {:version => (version) }%></li>
</ul>
<% end %>
<%= link_to "Go to current version"%>

謝謝您的幫助

看起來問題在於您正在嘗試使用版本對象的ID調用@page.versions[params[:version].to_i] ,但是@ page.versions只是一個集合,並且期望與該ID無關的索引版本對象。

這些解決方案均應起作用:

Version.find(params[:version])

要么

@page.versions.find(params[:version])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM