【问题标题】:Unpermitted parameters although controller has them whitelisted when creating user未经允许的参数,尽管控制器在创建用户时将它们列入白名单
【发布时间】:2015-09-27 16:46:56
【问题描述】:

在将 Rails 应用程序从 3.2 迁移到 4.1 时,我遇到了一些用户创建问题。因为需要区分 current_user 和 local_user。控制器创建动作

def create
  @local_user = User.new(user_params)

  respond_to do |format|
    if @local_user.save
      if params[:user][:avatar].present?
        format.html { render :crop }
      else
        format.html { redirect_to(admin_user_path(@local_user), :notice => 'User was successfully created.') }
      end
    else
      format.html { render :action => "new" }
    end

生成控制台错误:Unpermitted parameters: name, surname, pen_name[...],但用户控制器定义了它们:

def user_params
  params.require(:user).permit(:name, :surname,  :pen_name, [...])
end

表单调用为:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :method => :post, :validate => true) do |f| %>

这必然是一个设计问题,因为可以使用具有完全相同变量的 User 类的脚手架创建用户。有一些设计正在经历的逻辑不会拉动所有控制器逻辑;我错过了什么?

【问题讨论】:

    标签: devise ruby-on-rails-4.1


    【解决方案1】:

    根据this demo,需要一个设计特定的初始化程序,其中所有变量都可以作为数组输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多