4

私は次のモンゴイドモデルクラスを持っています:

class Exercise
  include Mongoid::Document
  field :name, :type => String
  field :description, :type => String

  belongs_to :group

  validates_presence_of :name, :description, :group
end

そして、私は次のコントローラを持っています:

class ExercisesController < ApplicationController
  respond_to :json

  def create
    @exercise = Exercise.create(params[:exercise])
    if @exercise.save
      respond_with @exercise
    else
      respond_with(@exercise.errors, :status => :unprocessable_entity)
    end
  end
end

モデルは有効な場合は正常に保存されますが、次の行が実行されると:

respond_with(@exercise.errors, :status => :unprocessable_entity)

次のエラーが表示されます

ActiveModel::Errors:Class の未定義メソッド `model_name'

エラー コレクションに値が設定されているため、respond_with 構文が間違っていると思います。

4

1 に答える 1

2

rails Respond_with ヘルパーは、1 番目のパラメーターとして rails モデル オブジェクトを受け取ることを想定しています。したがって、この場合は、respond_with @exercise, status: :unprocessable_entity が必要です。次に、応答ビューで、エラー データを適切にフォーマットする必要があります。ajax を介してこれを実行し、json などで応答していると想定しています。それが役立つことを願っています。

于 2013-03-21T17:19:08.090 に答える