2014-02-28 1 views
0

collection_select을 비롯한 모든 특성을 올바르게 저장하는 작업 양식이 있습니다. 그러나, 나는 나의 새로운 액션 내가 undefined method 'map' for nil:NilClasscollection_select를 제출할 때 홀수 오류가 발생합니다.

를 얻을 validates :title, presence: true를 추가 제출하려고 :

class ItemsController < ApplicationController 
    def new 
    @item = Item.new 
    @categories = Question.editable_by(current_user) 
    respond_to do |format| 
     format.html { render :layout => true} 
     format.json { render :json => @item } 
     format.js 
    end 

    end 
end 

보기 items\_form.html.haml

이다가 작동하지 않습니다

= f.collection_select :question_id, @categories, :_id, :iqs_item

작품

= f.collection_select :question_id, Question.editable_by(current_user), :_id, :iqs_item

내가보기에 컨트롤러에서 @categories 개체를 추가 할 때 작동합니다. 나는 뭔가를보기에서 error 함수에 전달되지 않거나 오류가있는 페이지를 다시 그릴 때 선택을 매핑 할 수 없다고 생각하고 있습니까?

도와주세요. 다시 말하지만, 작동하도록 할 수는 있지만 오히려 메소드 호출을보기에 넣지 않을 것입니다. 컬렉션 즉., @categoriesnil로 설정, 그것을 주어 졌을 때

+0

당신은 내가'Question.editable_by (CURRENT_USER가)'즉, nil을 반환 추측하고있는 오류 스택 트레이스 –

+0

를 공유 할 수 있습니다 만드는 방법에 @categories 설정 편집 가능한 질문이 없습니다. –

+0

@KirtiThorat, 최선의 방법은'development.log'입니다. 그리고, 아니,'Question.editable_by (current_user)'는'Question.all'로 간주됩니다. 이 함수는 컨트롤러와 뷰에서 모두 잘 작동합니다. 오류가 발생했다는 사실을 제출 한 후에야 –

답변

1

= f.collection_select :question_id, @categories, :_id, :iqs_item

라인은 undefined method 'map' for nil:NilClass 오류를 줄 것이다.

오류 코드없이 페이지가 성공적으로 표시되고 select이없는 경우 아래에서 언급 한 코드를 추가하면 @categories가 nil로 설정되었음을 알 수 있습니다.

- unless @categories.nil? 
    = f.collection_select :question_id, @categories, :_id, :iqs_item 

편집은

또한 CURRENT_USER를 들어,

+0

@KiriThroat, 제 편집보기. 나는 곧 로그를 얻을거야. –

+0

보기에서 선택 드롭 다운을 추가 했습니까? 컨트롤러 이름과보기 이름을 공유하십시오. –

+0

업데이트 됨. 보기는 형태를 가진 일반적인'new' 메소드입니다. –