【发布时间】:2014-04-28 08:00:14
【问题描述】:
发现了一些相关的帖子,但没有一个能帮助我解决我的问题。
所以我使用 Rails 创建了一个简单的产品 API:
class API::V1::ProductsController < ApplicationController
respond_to :json
def index
respond_with Product.all
end
def show
respond_with Product.find(params[:id])
end
def create
@product = Product.new(product_params)
if @product.save
respond_with @product
end
end
def update
respond_with Product.find(params[:id]).update_attributes(params[:product])
end
def destroy
respond_with Product.destroy(params[:id])
end
private
def product_params
params.require(:product).permit(:name, :category, :price, :release_date)
end
end
我正在尝试发送 POST 请求以使用 RESTClient 创建产品。 当我尝试使用以下内容填写 POST 请求正文时:
{ "product"=> {
"name": "Acoustic Guitar2",
"category": "Instrument",
"price": 600.0,
"release_date": "2012-01-10"
} }
或
{
"name": "Acoustic Guitar2",
"category": "Instrument",
"price": 600.0,
"release_date": "2012-01-10"
}
或
{ "product": {
"name": "Acoustic Guitar2",
"category": "Instrument",
"price": 600.0,
"release_date": "2012-01-10"
} }
我收到一个错误:
ActionController::ParameterMissing at /api/v1/product
param not found: product
根据我的研究,这与 Rail 4 的强大参数有关,但我真的不知道如何解决它。有任何想法吗?我知道那里有 ruby-api gem,但我想了解它是如何手动完成的。
【问题讨论】:
标签: ruby-on-rails ruby json api ruby-on-rails-4