如何从Rails Controller中的Postman获取数据?
我想问关于postman的param post,所以我可以在rails的控制器中获得它。如何从Rails Controller中的Postman获取数据?
这里是我的控制器
class Api::V1::UsersController < ApplicationController
before_action :get_user, only: [:show, :fullname]
#get all user object
def index
render :json => User.all
end
# get user object with id
def show
render :json => @user
end
# get full name of user object with id
def fullname
@hasil = @user.firstname + ' ' + @user.lastname
render :json => @hasil
end
# post object into model
def create
@user = User.new(user_params)
@user.save
if @user.save
render :json => @user
else
render :json => @user.errors.full_messages
end
end
private
def user_params
params.permit(:username, :firstname, :lastname, :age)
end
def get_user
@user = User.find(params[:id])
end
end
当我在邮递员试试吧,我上的用户名,名字,姓氏和年龄了空。
我张贴这样
[
{
"username": "admin2",
"firstname": "Reza Adha",
"lastname": "Hamonangan",
"age": 23,
}
]
我的Rails服务器日志,当我尝试后
Started POST "/api/v1/users" for ::1 at 2016-11-18 18:04:24 +0700
ActiveRecord::SchemaMigration Load (0.0ms) SELECT `schema_migrations`.* FROM `schema_migrations`
Processing by Api::V1::UsersController#create as */*
(0.0ms) BEGIN
SQL (1.0ms) INSERT INTO `users` (`created_at`, `updated_at`) VALUES ('2016-11-18 11:04:25', '2016-11-18 11:04:25')
(4.2ms) COMMIT
(0.0ms) BEGIN
(0.0ms) COMMIT
Completed 200 OK in 22ms (Views: 0.3ms | ActiveRecord: 7.2ms)
我觉得我做错了什么事在我的控制器从邮递员获得POST数据。 请帮我.. 感谢您的关注。
需要存在params的user
键:
[
"user": {
"username": "admin2",
"firstname": "Reza Adha",
"lastname": "Hamonangan",
"age": 23,
}
]
,并允许user
强PARAMS:
params(:user).permit(:username, :firstname, :lastname, :age)
身体的类型是什么?当我复制并粘贴你的JSON到身体原始,我仍然得到空结果。 –
如果我使用我的get/users,我得到了这样的数据。[ { “id”:1, “username”:“admin”, “firstname”:“Reza Adha”, “lastname” :“Hamonangan”, “age”:23, “created_at”:“2016-11-18T00:00:00.000Z”, “updated_at”:“2016-11-18T00:00:00.000Z” }, { “ID”:28, “用户名”: “admina”, “名字”: “礼古尔邦节”, “姓氏”: “Hamonangan”, “时代”:23, “created_at”:“ 2016-11-18T00:00:00。000Z“, ”updated_at“:”2016-11-18T00:00:00.000Z“ } ] –
行,所以我发现从here。我的答案插入错邮递员T_T
它应该看起来像这样
{
"user" : {
"username": "admin2",
"firstname": "Reza Adha",
"lastname": "Hamonangan",
"age": 23
}
}
和我没有得到标题aplication/JSON。 对此感到抱歉。谢谢@ user100693和@MurifoX
您可以将您的服务器日志参数传递,对错误的更好的痕迹? – user100693
'开始POST “/ API/V1 /用户” 为:: 1在2016年11月18日18时04分24秒0700 的ActiveRecord :: SchemaMigration负荷(0.0ms)SELECT'schema_migrations'。* FROM'schema_migrations' 处理由阿比:: V1 :: UsersController#创建作为*/* (0.0ms)BEGIN SQL(1.0ms的)INSERT INTO'users'('created_at','updated_at')VALUES('二○一六年十一月一十八日11 (0.0ms)BEGIN (0.0ms)COMMIT 已完成200在22ms内完成(观看次数:0.3ms | ActiveRecord(04:25','2016-11-18 11:04:25') (4.2ms)COMMIT :7.2ms)' –
在这里,似乎你的参数不是从邮递员传递过来的。 – user100693