创建操作时Rails ParameterMissing错误

时间:2016-05-15 09:55:35

标签: ruby-on-rails ruby-on-rails-4

当我尝试创建用户时,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

我做错了什么?

2 个答案:

答案 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]