2013-11-21 38 views
2

我有一個rails 4應用程序,我想在其中使用Best in Place或Rest Place或任何Gem來提供就地編輯。什麼可能會阻止我的rails 4應用程序就地編輯?

我試過這兩個。對於這兩者,我將用戶的「名稱」屬性設置爲可編輯。

當我訪問用戶的顯示頁面時,單擊該名稱並顯示輸入字段。但提交時,它不會更新記錄。

日誌:

Processing by UsersController#update as JSON 
    Parameters: {"user"=>{"name"=>"lkj"}, "authenticity_token"=>"TOz1cbnLc5KrX5JLZl0hiOsf7ZvwXhp6lD2qUIfH+og=", "id"=>"7"} 
    User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."remember_token" = '62f0af062cc8544a31bfe5a02ef00bf34d449959' LIMIT 1 
    User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", "7"]] 
    (0.1ms) begin transaction 
    User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 7) LIMIT 1 
    (0.1ms) rollback transaction 
Completed 500 Internal Server Error in 41ms 

它可以是正在發送的消息是PUT而不是補丁?在用戶控制器

我的更新動作:

def update 
    if @user.update_attributes(user_params) 
     flash[:success] = "Perfil actualizado" 
     sign_in @user 
     redirect_to @user 
    else 
     render 'edit' 
    end 
end 

任何幫助將非常感激。

謝謝!

+0

你的路線文件是什麼? – ksu

回答

1

如果更改

if @user.update_attributes(user_params) 

以下幾點:

if @user.update_attributes!(user_params) 

您將有錯誤的更詳細消息。

如果這不起作用,請嘗試Rails.logger.debug(user_params)在日誌中查看您的params散列。

摘要:

def update 
    if @user.update_attributes!(user_params) 
     flash[:success] = "Perfil actualizado" 
     sign_in @user 
     redirect_to @user 
    else 
     render 'edit' 
    end 
end 

調試據此!

+0

感謝jquadrin,更詳細的錯誤消息,我剛剛意識到user_params還發送了一個'密碼'參數與空值不通過驗證。感謝致敬。 –

相關問題