当我尝试创建用户时,Rails返回ParameterMissing错误:
ActionController::ParameterMissing in UserController#create
param is missing or the value is empty: user
我的控制器
class UserController < ApplicationController
def create
@user = User.new(user_params)
render json: @user
end
private
def user_params
params.require(:user).permit(:fame, :lame, :mobile)
end
end
我的用户模型
class User < ActiveRecord::Base
self.table_name = "user"
end
我做错了什么?
答案 0 :(得分:2)
检查日志中是否有发送到控制器的参数。最有可能的是,您的视图发送的params哈希不包含fallbackLng
密钥。要解决此问题,您需要确保使用User对象正确命名:user
:
form_for
您还可以使用form_for @user do |f|
# ...
end
键在参数中明确设置as
键。
:user
<强>更新强>
由于提问者使用form_for @object, as: :user, method: :post do |f|
# ...
end
发送数据,因此发送到服务器的数据应正确格式化:
postman
答案 1 :(得分:1)
谢谢 @Fabio和@Anthony
当你询问表格时,我实际上意识到我和邮递员发送的参数实际上是不正确的,因为它们应该是这样的
user[firstName]
<强>更新强> 它实际上深深地打动了你如何发送params。 我发送
user[firstname]
所以我感觉像params[:user][:firstName]
如果我发送firstname
,那么这将是params[:firstName]