Ruby on rails 为select设计注册添加一些验证
当我提交时,我得到了这个错误,但我无法理解。因为参数发送正确 应用程序控制器Ruby on rails 为select设计注册添加一些验证,ruby-on-rails,devise,ruby-on-rails-4,Ruby On Rails,Devise,Ruby On Rails 4,当我提交时,我得到了这个错误,但我无法理解。因为参数发送正确 应用程序控制器 class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception befor
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit! }
end
class UsersController < ApplicationController
def create
@user = User.create(user_params)
end
private
def user_params
params.require(:user).permit(:email, :role, ...)
end
Gemfile
gem 'protected_attributes'
gem 'devise', "~> 3.0.0.rc", github: 'plataformatec/devise' #, branch: 'rails4'
gem 'responders', github: 'plataformatec/responders'
gem 'inherited_resources', github: 'josevalim/inherited_resources'
gem 'ransack', github: 'ernie/ransack', branch: 'rails-4'
gem 'activeadmin', github: 'gregbell/active_admin', branch: 'rails4'
gem 'formtastic', github: 'justinfrench/formtastic'
设计轨道4
对于其他控制器,如何使属性允许更改:
例如,在用户控制器中
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit! }
end
class UsersController < ApplicationController
def create
@user = User.create(user_params)
end
private
def user_params
params.require(:user).permit(:email, :role, ...)
end
关于强_参数的文件:
为轨道4设计
对于其他控制器,如何使属性允许更改:
例如,在用户控制器中
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit! }
end
class UsersController < ApplicationController
def create
@user = User.create(user_params)
end
private
def user_params
params.require(:user).permit(:email, :role, ...)
end
关于强_参数的文件:
正如我所知,ruby on rails 4中没有“可访问的属性”(attr_accessible)这样的东西,您应该为rails 4寻找一个分支od设计,并且您应该在控制器的私有操作中指定在创建或更新时可以写入哪些属性。您使用rails 4和attr_accessible吗?用户为Rails 4和strong paramsok设计分支,添加日志。事实上,未经许可的参数就是问题所在。但我已经将“:role”设置为attr_accessible。我知道ruby on rails 4中没有
attr_accessible
,您应该为rails 4寻找一个分支od design,并且您应该在控制器的私有操作中指定在创建或更新时可以写入哪些属性。您使用rails 4和attr_accessible吗?用户为Rails 4和strong paramsok设计分支,添加日志。事实上,未经许可的参数就是问题所在。但是我已经将“:role”设置为attr_accessibleor,或者您是否从这里开始尝试使用rails 4的active_admin
(Gemfile&user.rb更新)。我得到:“未经允许的参数:角色警告:无法为用户批量分配受保护的属性:电子邮件、密码、密码\u确认”请参见编辑。在这里找到它:def user_params
不应该在user.model中,它是用于控制器的,为什么要放在那里?我甚至尝试在应用程序控制器上放置强参数,但没有任何更改!或者您从这里尝试过rails 4的active\u admin
(Gemfile&user.rb已更新)。我得到:“未经允许的参数:角色警告:无法为用户批量分配受保护的属性:电子邮件、密码、密码\u确认”请参见编辑。在这里找到它:def user_params
不应该在user.model中,它是用于控制器的,为什么要放在那里?我甚至尝试在应用程序控制器上放置强参数,但没有任何更改!
class UsersController < ApplicationController
def create
@user = User.create(user_params)
end
private
def user_params
params.require(:user).permit(:email, :role, ...)
end
def sign_up_params
params.require(:user).permit(:email, :password, :password_confirmation, :other, :etc)
end