2012-07-21 5 views
4

I가 다음 mongoid 모델 클래스 :정의되지 않은 메서드`MODEL_NAME ': 클래스

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 :: 오류에 대한

정의되지 않은 메서드`MODEL_NAME ': 클래스 오류 수집이 채워집니다

그래서 내 respond_with 구문이 잘못 생각합니다.

+3

'respond_with (@ exercise.errors, ...) '대신'respond_with (@exercise, ....)'하지 말아야합니다. – rubish

+0

고맙습니다. – dagda1

답변

2

레일즈 respond_with 헬퍼는 첫 번째 매개 변수로 레일스 모델 객체를 수신하려고합니다. 그래서이 경우에 당신은 respond_with @exercise, status :: unprocessable_entity를 원한다. 그리고 응답 화면에서 에러 데이터의 형식을 올바르게 지정해야한다. 나는 아약스를 통해 이것을하고 json 등으로 응답하고 있다고 가정한다. 희망이 도움이됩니다.