我目前正在學習Ruby on Rails。我使用了強大的參數的Rails 4方法來指定哪些屬性可以在我的用戶模型中訪問。 這是我users_controller.rb
Rails 4:能夠修改不可訪問的屬性
class UsersController < ApplicationController
def create
User.create(user_params)
end
private
def user_params
params.require(:user).permit(:email)
end
end
然而,我能夠通過使用user.update_attributes(:id => 5, :name => "Bar")
,不應該被允許更新用戶的不可訪問的屬性。這是爲什麼發生?難道我做錯了什麼?
編輯:我開始控制檯由rails console --sandbox
。然後使用.save
方法將一些用戶添加到數據庫,然後調用update_attributes
方法。
顯示更新操作 – Santhosh
您是在控制器還是在控制檯中執行'update_attributes'調用?我問,因爲在控制器中沒有看到要更新的調用,強參數只能在控制器中使用。 – Aaron
@Santosh:我剛剛使用'update_attributes'命令。 – Koderok