【发布时间】: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 类的脚手架创建用户。有一些设计正在经历的逻辑不会拉动所有控制器逻辑;我错过了什么?
【问题讨论】: