2016-11-29 202 views
1

我使用paper_trail gem來版本化我的Pages模型。使用paper_trail獲取版本ID的下一個和以前版本

我有一個方法叫做version需要一個page_idversion_id

def version 
    page = Page.where(id: params[:page_id]).first 
    @version = page.versions.where(id: params[:version_id]).first 
    @previous_version = @version.previous_version rescue nil 
    @next_version = @version.next_version rescue nil 
end 

我想要做的是獲得下一個和以前的版本,將它們傳遞給我的觀點。不過,我只能訪問當前版本。即使我有下一個和以前的版本,@previous_version@next_version總是nil。它似乎並不知道方法previous_versionnext_version是什麼。

+0

你不應該使用'@ version.next'和'@ version.previous',而不是'@ version.next_version'和'@ version.previous_version'? – fanta

回答

1

版本對象有nextprevious方法,而版本的對象(在你的情況下,它@page)的方法next_versionprevious_version

所以:

@page.previous_version 
#=> returns previous version of @page object 

@page.versions.previous 
#=> returns a previous version object 
+0

啊好的。文檔已過時。謝謝! – Cameron

+0

@Cameron編輯了一些更多細節的答案:) –

+0

謝謝你清理。 – Cameron