Ruby on rails 纸质版本控制

Ruby on rails 纸质版本控制,ruby-on-rails,paper-trail-gem,Ruby On Rails,Paper Trail Gem,我正在尝试制作一个带有书面记录的版本列表,用户将能够看到版本之间的差异并返回到旧版本 我已经找到了如何制作一个列表和到这个版本的链接,但是由于某些原因,当我试图具体化最后两个版本时,我遇到了一个错误。 它说:nil:NilClass的未定义方法“具体化” 有人知道该怎么做吗?关于差异版本控制又该怎么办 # controller def edit @page = Page.find(params[:id]) @versions = @page.versions @page = @page.vers

我正在尝试制作一个带有书面记录的版本列表,用户将能够看到版本之间的差异并返回到旧版本

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

有人知道该怎么做吗?关于差异版本控制又该怎么办

# 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"%>
#控制器
定义编辑
@page=page.find(参数[:id])
@versions=@page.versions
@page=@page.versions[params[:version]。to_i]。如果参数[:version]具体化
结束
#模型
类页true
属于:类别
有书面记录吗
结束
#看法
  • (版本)}%>

感谢您的帮助

看起来问题在于您试图使用版本对象的id调用
@page.versions[params[:version].to_i]
,但是@page.versions只是一个集合,需要一个与版本对象id无关的索引

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

Version.find(params[:version])


问题似乎是您试图使用版本对象的id调用
@page.versions[params[:version]
,但是@page.versions只是一个集合,需要一个与版本对象id无关的索引

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

Version.find(params[:version])