簡體   English   中英

Rails-強參數和attr_accessible

[英]Rails - Strong Parameters and attr_accessible

Rails newb,只是在我的第一個應用程序上工作以及我在python和bash之外的第一次編碼經驗,用於sysadmin類型的工作。 在C9上使用rails 4.1,有點奇怪為什么我遇到了這種情況。 從我閱讀的有關使用強參數的內容中,它取代了舊的Rails 3對attr_accessible的使用。

我在我的應用程序上使用了devise和setup auth,然后想添加一些自定義字段,例如用戶名和郵政編碼,以通過用戶個人資料頁面進行更新。 這是我必須完成此操作的代碼。 根據我的閱讀,強參數應該從模型移到控制器中。

app / controllers / registrations_controller.rb#這繼承了devise :: reg

def sign_up_params
  params.require(:user).permit(:username, :email, :password, :zipcode, :password_confirmation)
end

def account_update_params
  params.require(:user).permit(:username, :email, :password, :zipcode, :password_confirmation, :current_password)
end

但是,即使添加了此內容,如果不添加以下內容,仍然無法通過我的/ users / edit頁面保存字段。

app / models / user.rb

attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :zipcode

將用戶名和郵政編碼符號(不確定是否是正確的術語)添加到user.rb后,將填充數據庫。 我唯一能想到的是事實,當我試圖弄清楚這一點時,我又添加了gem'protected_attributes'。 這是什么迫使我在user.rb中使用attr_accessible語句?

如果還有其他有用的代碼,請詢問。 感謝您的關注,在我開始理解這一點的過程中,我非常感謝。

我想我應該在嘗試之前自己嘗試一下。 我刪除了gem'protected_attributes'並注釋了attr_accessible行,並重新啟動了rails和viola,它仍然可以工作。 :D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM