使用Postman rest api创建对象时出错[RAILS 4]

时间:2014-03-14 10:04:01

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

我正在尝试使用Postman REST API创建rails应用程序的对象,但收到以下错误:

ActionController::ParameterMissing in GroupsController#create

我的控制器:

class GroupsController < ApplicationController
before_action :set_group, only: [:show]
skip_before_filter :verify_authenticity_token

def show
    render json: @group 
end

def new
    @group = Group.new
end

def create
    @group = Group.new(group_params)
    if @group.save
            render json: @group
            else
        render json: @group.errors
    end
end

private
def set_group
    @group = Group.find(params[:id])
end
def group_params
    params.require(:group).permit(:title, :description, :user_id)
end

end

enter image description here

我发现了许多类似的问题,但它们与表格有关,但我没有使用它! 任何反馈都表示赞赏。

上次更新

我可以通过以下方式解决此错误:

    def group_params
         params.fetch(:group, {}).permit(:title, :description, :user_id)
    end

但现在它说这些字段即使存在也不能为空。我发错了params [:group]吗?

日志文件:

Started POST "/groups" for 127.0.0.1 at 2014-03-14 22:21:26 +0100
Processing by GroupsController#create as */*
[1m[35m (0.1ms)[0m  begin transaction
[1m[36m (0.1ms)[0m  [1mrollback transaction[0m
Completed 200 OK in 7ms (Views: 0.3ms | ActiveRecord: 0.2ms)

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下json有效负载

{
    'group' : {
    'title': 'your title',
    'description': 'your description',
    'user_id': 1
    }
}

并在标头中设置Content-Type: application/json 还在url

中将请求格式设置为.json

答案 1 :(得分:0)

你的参数需要属于属于group属性的形式,在这种情况下,这是你的模型。要在Postman中执行此操作,请使用URL params而不是raw来使您的生活更轻松。这是一个截图: enter image description here

此外,如果您希望通过json在上述某个答案中执行此操作,请务必将帖子请求从http://0.0.0.0:3000/groups更改为http://0.0.0.0:3000/groups.json