2013-10-14 33 views
0

我學習的回報率通過邁克爾 - 哈特爾的教程...設定值創建和更新(ROR 4)

在創建或在我parameters_controller更新記錄(我的應用程序的參數定義),我需要從會話cookie添加數據。所以我加入這個代碼在我的控制器:

private 
def current_user 
    remember_token = User.encrypt(cookies[:remember_token]) 
    @current_user ||= User.find_by(remember_token: remember_token) 
end 

和會話數據的代碼在我創建功能設置某些字段自動:

def create 
    @parameter = Parameter.new(parameter_params) #code generated by Rails 
    @parameter.updated_by = current_user.name #my additional code 
    @parameter.created_by = current_user.name 
    respond_to do |format| 
    if @parameter.save 
    ... 

的正常工作,但它不工作更新功能:

def update  
    @parameter.updated_by = current_user.name  #my additional code 
    respond_to do |format|       #code generated by Rails 
    if @parameter.update(parameter_params)   
    ... 

什麼也沒做。

有人能解釋我錯過了什麼嗎?

非常感謝!

最好的問候,

弗雷德

+0

創建和更新兩者都是不同的東西,create方法在數據庫中創建新的對象,但更新方法更新現有的對象。 因此,在更新任何記錄時,您必須傳遞特定對象來更新方法。 –

+0

你可以發佈你的更新表單和請求參數嗎? –

回答

1

您需要先設置你的@parameter。類似的,

@parameter= Parameter.find(params[:id]) 

一旦你檢索到對象,你可以更新它的屬性。

+0

好極了,簡單!我喜歡 !謝謝 ! – user1185081