【问题标题】:Paper trail versioning纸迹版本控制
【发布时间】:2013-11-27 10:26:45
【问题描述】:

我正在尝试使用 Paper trail 制作版本列表,该用户将能够看到版本之间的差异并返回到旧版本。

我已经找到了如何制作列表和指向此版本的链接,但由于某些原因,当我尝试具体化最后两个版本时出现错误。 它说:nil:NilClass 的未定义方法“reify”

有谁知道,如何处理它以及差异版本控制如何?

# 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"%>

感谢您的帮助

【问题讨论】:

    标签: ruby-on-rails paper-trail-gem


    【解决方案1】:

    看起来问题是您尝试使用版本对象的 id 调用 @page.versions[params[:version].to_i],但 @page.versions 只是一个集合,并且期望索引与版本对象的 id 无关。

    这些解决方案中的任何一个都应该有效:

    Version.find(params[:version])
    

    或者

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2011-05-12
      • 2010-10-30
      相关资源
      最近更新 更多