2013-05-03 1 views
0

클래스의 업데이트에 문제가 있습니다. RoR ruby ​​- NilClass의 정의되지 않은 메소드`model_name ': 클래스

뷰입니다 :

<div id = "list"> 
     <%= form_for @list do |form| %> 
     <%= render 'shared/error_messages', object: form.object %> 
     <div class="list_fields"> 
     <%= form.text_field :name, placeholder: 

이 컨트롤러입니다 :

 def update 
     if @list.update_attributes(params[:list]) 
      flash[:success] = "List updated" 
     else 
      render 'edit' 
     end 
     redirect_to @list 
    end 

라우트는 다음과 같습니다

 resources :lists, only: [:create, :show, :destroy,:edit] 

이제 문제가 제기 유지됩니다

 "undefined method `model_name' for NilClass:Class" 
      in line 2 ---> <%= form_for @list do |form| %> 

그리고 이유를 파악할 수 없습니다. 미리 감사드립니다. 레오

+0

당신은'<% = form.text_field : name, placeholder :'행이 완전하지 않다는 것을 알았습니까? –

+0

예 코드의 일부분 일뿐입니다 – Fairglen

답변

1

속성을 업데이트하기 전에 @list을로드해야합니다.

def update 
    @list = List.find_by_id(params[:id]) 
    if @list.update_attributes(params[:list]) 
    flash[:success] = "List updated" 
    else 
    render 'edit' 
    end 
    redirect_to @list 
end 

그런데 표시되는 문제는 업데이트 동작으로 인한 것이 아니라이보기로 리디렉션되는 편집 동작에 의해 발생합니다.

두 작업 모두에서 @list를로드해야합니다. 뷰를 렌더링하기 위해 편집 액션에서 적절한 객체를 업데이트하기위한 업데이트 액션.

+0

감사합니다. D = – Fairglen

+0

당신을 진심으로 환영합니다. 질문을 답변으로 표시 할 수 있습니다. –

+1

첫 줄을 단순화 할 수 있습니다 : @list = List.find (params [: id]) – Mattherick

관련 문제