1

のエラー応答をカスタマイズしたいrespond_with。エラーをレンダリングする方法は次のとおりです。

# /app/controllers/articles_controller.rb
def create
  article = Article.new(params[:article])
  article.save
  respond_with(article)
end

Response:

{
  errors: {
    title: ["can't be blank", "must be longer than 10 characters"],
    body: ["can't be blank"]
  }
}

別の方法で対応してもらいたいです。この形式をオーバーライドする方法はありますか?

ActionController::Responder クラスにモンキーパッチを適用して再定義することでこれを成功させましたjson_resource_errorsが、これは悪い方法のようです。

4

2 に答える 2

1

respond_with最も簡単な方法は、 but respond_to( docs )を使用しないことです。

respond_to do |format|
  format.json { article.valid? ? article.to_json : article.custom_json_errors }
end
于 2015-08-03T21:32:18.927 に答える