我剛創建一個設置頁面,用戶可以在其中更改他的用戶名。奇怪的是我正在使用相同的finder Method在主視圖和窗體中顯示它,但是這些對象彼此沒有關係。Model.find返回相同的對象參考
副作用現在,如果我不輸入用戶名,並點擊保存。兩個對象都被更新。以及視圖中顯示的錯誤。
我只是想在表單中使用一個單獨的模型。我在這裏做錯了什麼?我認爲調用「Model.find」每次都會返回一個對象的不同引用,即使它在db中是同一行。在這裏玩一些智能緩存嗎?
它在表單中改變用戶意味着更改視圖中所有其他相同的用戶對象。
行動渲染創建/編輯頁面:
public static void index(){
User appUser = User.findUser(SecureSocial.getCurrentUser().id);
render(appUser);
}
我的看法(它顯示登錄的用戶名的電流)
${models.User.findUser(user.id).username}
我的模型:
public static User findUser(UserId userId){
User user = User.find("externalId = ? and provider = ?", userId.id, userId.provider.name()).first();
return user;
}
感謝