4

我有以下 mongoid 模型类:

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 助手期望接收 rails 模型对象作为第一个参数。因此,在这种情况下,您只需要 respond_with @exercise, status: :unprocessable_entity 然后在您的响应视图中,您需要正确格式化错误数据,我假设您是通过 ajax 执行此操作并使用 json 等进行响应。希望有帮助。

于 2013-03-21T17:19:08.090 回答