[英]attr_accessible in rails 4
我正在做一個月的軌道,我遇到了attr_accessible函數的問題。 我已將它作為gem 4(gem'en protected_attributes')中的gem安裝,並將其與simple_form一起使用。
但問題是,當我用名字更新我的表單時,它不會記住它! 但它說它成功更新??
這是我的user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :name
end
由於您使用的是Devise
,因此可以刪除整個attr_accessible
行(以及strong_parameters
gem,請參閱下面的內容)。 Devise提供了一個控制器 ,可以為您處理注冊。
如果要向用戶添加其他屬性,可以使用自定義控制器將Devise::RegistrationsController
子類化:
# app/controllers/registrations_controller
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
def account_update_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :current_password)
end
end
然后,您需要告訴Devise路由到您的自定義控制器:
# config/routes.rb
devise_for :users, :controllers => { registrations: 'registrations' }
PS 。 我還建議刪除strong_parameters
gem並使用開箱即用的Rails 4強參數 。 模型級別的白名單參數存在幾個已知問題(例如,不同操作的不同參數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.