0

我仍然無法弄清楚如何實現這一點,因爲我是這個新手。有些人幫我,說我必須使用審計,所以它。這是我的控制器:顯示最後修改表/記錄Rails 3.2

def show 

    add_breadcrumb 'Contract Bekijken', :contracten_path 

    @contracten = Contracten.find(params[:id]) 

    @audits = @contracten.audits.collect { |a| a.created_at } 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @contracten } 
    end 
    end 

這是我的整個控制器的一個pastie。 http://pastie.org/4270702

但我不知道這是對的還是如何實現這個我的看法。

我希望有人真的可以幫忙,因爲我真的需要這個工作本週。

謝謝。


我有一個rails應用程序,我可以將合同存儲在數據庫中,它也有數據庫中的人員和工廠表。 現在我想有一個最後修改表。

截圖:

last modified

我想,當人們更新/添加新記錄到數據庫中,它會顯示在屏幕截圖股利權的修改。

感謝:D

回答

0

您需要的是審覈歷史的編輯。

通過將該模型掛接到ActiveRecord callbacks,您可以自己實現該模型(如果存在自定義業務邏輯,那麼您可以自己實現)。

示例實現可能看起來像這樣:

class Contract < ActiveRecord::Base 
    after_save :audit 

    def audit 
    log = AuditLog.new(:user_id => current_user, :action => :update, ...) 
    log.save 
    end 
end 

這假設你有一個包含要登錄到和你寫你的審計方法的相應字段一個審計日誌模型。

或者,更簡單的方法是使用Audited gem這樣做(但可能會帶來一些限制)。

從Audited文檔看來,您可以簡單地獲取Contract記錄並在該模型上使用audits然後訪問審覈的信息。

樣品

def show 
    @contract = Contract.find(params[:id]) 
    @audits = @contract.audits.collect { |a| a.created_at } 
end 

現在,你必須在@audits變量審計的所有的時間戳和可以使用<% @audits.each do ...視圖訪問它們。

+0

我只需要顯示最後修改的記錄,所以我認爲寶石將工作:D謝謝 –

+0

嗨,歡迎來到StackOverflow :) 如果答案是有用的,你通常應該upvote它,並將其標記爲回答如果它解決您的問題:) – Tigraine

+0

我可以在3分鐘內接受答案:)所以 –

0

從你的問題看來,你似乎只需要一個基於updated_at字段的列表。

怎麼樣 - @contract_list = Contract.all.order("updated_at DESC").limit(10)

然後你就可以在視圖列表進行迭代。

好看的頁面!