在 rails 上使用邮递员 ruby 为 current_user 创建一条记录
create a record for a current_user using postman ruby on rails
我有 2 table 个用户和项目。当我尝试通过邮递员 API 创建项目时。我收到一个错误,指出项目为零,因为它正在寻找 current_user.items 并导致当我尝试创建项目时用户不是来自 API。
@item = current_user.items.build(item_params)
当我尝试从邮递员创建项目时如何验证并成为 current_user 的问题?
这是我要发送的API
http://localhost:3000/api/v1/createitem
这是错误消息
"exception": "#<NoMethodError: undefined method `items' for nil:NilClass>",
这里来自命令行
这个items_controller.rb
class Api::V1::ItemsController < ApplicationController
def createitem
@item = current_user.items.build(item_params)
if @item.save
redirect_to listing_item_path(@item), notice: "Saved..."
else
flash[:alert] = "Something went wrong..."
render :new
end
end
def item_params
params.require(:item).permit(:item_category, :item_condition,:item_name,:summary,:address,:price,:active, :instant)
end
end
错误发生在 items_controller.rb 的第 81 行,该行
@item = current_user.items.build(item_params)
这是发送
中的json
{"item_category": "Books & Magazines", "item_condition": "Used", "item_name": "Crushing it", "summary": "super awesome", "price": 20, "active": true,"instant": 1}
这里是application_controller.rb
class ApplicationController < ActionController::API
include Authenticate
rescue_from ActiveRecord::RecordNotFound, with: :render_404
def render_404
render json: { error: "Invalid ID", is_success: false}, status: 404
end
end
我确实有一个 API 用于登录,它正在运行
http://localhost:3000/api/v1/login
首先你必须定义/获取current_user
。由于 API 与 Web 应用程序完全不同,它们无法处理 session,因为没有浏览器参与。所以我们需要以不同的方式处理授权。
我假定您的登录 API return 一些用于登录用户的唯一令牌,如果不是,您必须先实现它。
您必须在 header 中的每个 API 调用中传递该令牌并验证该令牌以获取 current_user
。
更多参考请Read this。
我有 2 table 个用户和项目。当我尝试通过邮递员 API 创建项目时。我收到一个错误,指出项目为零,因为它正在寻找 current_user.items 并导致当我尝试创建项目时用户不是来自 API。
@item = current_user.items.build(item_params)
当我尝试从邮递员创建项目时如何验证并成为 current_user 的问题?
这是我要发送的API
http://localhost:3000/api/v1/createitem
这是错误消息
"exception": "#<NoMethodError: undefined method `items' for nil:NilClass>",
这里来自命令行
这个items_controller.rb
class Api::V1::ItemsController < ApplicationController
def createitem
@item = current_user.items.build(item_params)
if @item.save
redirect_to listing_item_path(@item), notice: "Saved..."
else
flash[:alert] = "Something went wrong..."
render :new
end
end
def item_params
params.require(:item).permit(:item_category, :item_condition,:item_name,:summary,:address,:price,:active, :instant)
end
end
错误发生在 items_controller.rb 的第 81 行,该行
@item = current_user.items.build(item_params)
这是发送
中的json{"item_category": "Books & Magazines", "item_condition": "Used", "item_name": "Crushing it", "summary": "super awesome", "price": 20, "active": true,"instant": 1}
这里是application_controller.rb
class ApplicationController < ActionController::API
include Authenticate
rescue_from ActiveRecord::RecordNotFound, with: :render_404
def render_404
render json: { error: "Invalid ID", is_success: false}, status: 404
end
end
我确实有一个 API 用于登录,它正在运行
http://localhost:3000/api/v1/login
首先你必须定义/获取current_user
。由于 API 与 Web 应用程序完全不同,它们无法处理 session,因为没有浏览器参与。所以我们需要以不同的方式处理授权。
我假定您的登录 API return 一些用于登录用户的唯一令牌,如果不是,您必须先实现它。
您必须在 header 中的每个 API 调用中传递该令牌并验证该令牌以获取 current_user
。
更多参考请Read this。