2010-08-18 2 views
0

를 작동하지 : 새와 컨트롤러 : 뉴스루비 업데이트 작업 내가 가지고있는 하나 개의 모델을

뉴스 컨트롤러 방법 : 여기

def edit 
    @new = New.find(params[:id].to_i) 
    end 

    def update 
    @new = New.find(params[:id].to_i) 
    @new.update_attributes(params[:new]) 
    flash[:notice] = "Sikeresen frissítve" 
    redirect_to news_path 
    rescue ActiveRecord::RecordInvalid 
    flash[:error] = "Valami hiba lépett fel" 
    redirect_to edit_news_path(@new) 
    end 

그리고 것은 edit.html.erb

<%= error_messages_for :news %> 

<% form_for :new, :url=>news_path(@new), :html=>{:method=>:put} do |m|%> 

    <p> <%= m.label(:title,"title: ") %> 

    <%= m.text_field(:title) %></p> 

    <p> 

    <%= m.label(:text, "text: ") %> 

    <%= m.text_area(:text) %> 

    </p> 

    <%= submit_tag "Save" %> 

<% end %> 
에게 있습니다

괜찮아요, 오류, 필드가 텍스트 상자에 나타났습니다. 그러나 제출 버튼을 클릭하면 알 수없는 동작 오류가 발생했습니다.

답변

3

을 나는 그것이해야한다고 생각

: 홈페이지 => new_path (@new)

하지

: 홈페이지 => news_path (@new)

당신의 모델을 "새"라고 부르기 때문에 나는 그것에 대해 생각하는 것을 혼란스럽게 생각합니다.

혼동을 피하기 위해 모델 이름 (및 컨트롤러 및 뷰)을 변경하는 것이 좋습니다. "New"는 'new'액션의 맥락에서 레일에 사용됩니다. 그것을 변경하지 않으면 "new_new_path"및 "update_new_path"와 같은 것을 가지게되어 어느 시점에서 울게 만들 것입니다.

또한 '새로운'에 대해 이야기하는 것이 실제로 의미가 없습니다. 단 하나의 '뉴스'는 '새로운'것이 아닙니다. 그것은 매우 혼란 스럽습니다. 주위에 더 많은 물건을 만들기 전에 그것을 정리하십시오.

"제품"이나 모델 이름과 비슷한 것을 권하고 싶습니다.

+0

OP가 그의 컨트롤러 이름으로 뉴스를 고수하고자한다면 그는 "뉴스"를 계산할 수 없도록 굴절 장치를 변경할 수 있습니다 –

0

이 시도 :

form_for :new, :url=>{ :action => "update" }, :html=>{:method=>:put} do |m|