1

我正在使用 rails 3.2 和 rabl 开发一个 API。

基本上我有一个模型“资产”和一个非常简单的关联控制器:

class AssetsController < ApplicationController
  respond_to :json

  # GET /assets.json
  def index
    @assets = Asset.all
  end

  # GET /assets/1.json
  def show
    @asset = Asset.find(params[:id])
  end

  # GET /assets/1/edit
  def edit
    @asset = Asset.find(params[:id])
  end

  # POST /assets.json
  def create
    @asset = Asset.new(params[:asset])
    @asset.save
  end
end

对于每个动作,我都有一个关联的 ACTION.json.rabl 视图。

例如,我的 index.json.rabl 是:

object @assets
attributes :kind, :description

当我发出以下命令时,将创建 Asset 对象但具有空值:

curl -XPOST -d 'kind=house' 'http://localhost:3000/assets.json'

另外,POST/assets.json 和“create”函数之间的映射在哪里指定?

4

1 回答 1

1

这很正常,因为您在 curl 调用中做错了。您传入 args 只是kind不像asset[kind]您在方法中想要的那样create

@asset = Asset.new(params[:asset])

使用以下方法更新您的 curl 方法:

curl -XPOST -d 'asset[kind]=house' 'http://localhost:3000/assets.json'
于 2012-03-07T08:53:02.280 回答