未授权的参数,尽管控制器在创建用户

时间:2015-09-27 16:46:56

标签: devise ruby-on-rails-4.1

在将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类的脚手架创建。有一些逻辑设计正在经历,它没有拉动所有的控制器逻辑;我错过了什么?

1 个答案:

答案 0 :(得分:0)

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