ActiveResourceでバリデーションのエラーメッセージを送信する方法
よく見るサンプルコードみたく以下のように書くとダメ。
if @hoge.save format.json { render :json => @hoge, :status => :ok } else format.json { render :json => @hoge.errors, :status => :unprocessable_entity } end
エラーを返す時はハッシュで:errorsをつけてやるとおkでした。
if @hoge.save format.json { render :json => @hoge, :status => :ok } else format.json { render :json => {:errors => @hoge.errors.to_json}, :status => :unprocessable_entity } end
クライアント側ではこれをやってやるだけで取得できます。Railsが勝手にやってくれると思い込んでたんだけど、こうしないとダメらしい。なんか面倒だな。@hoge.errors.to_jsonの#to_jsonは省略できないものか。。