2010-07-03 4 views
0

문제 : 저는 사람들이 모여 있습니다. 모든 사람들에게 정수를 증가시킬 수있는 revise.html 페이지를 갖고 싶습니다.Rails에서 업데이트 방법을 수정하고 싶습니다. 그러나 REST가 나를 제한하고 있습니다.

people_controller에서 새로운 방법을 만들면 자동으로 사람들에게 보내고/수정합니다 ..이 코드는 show/revise ...라는 ID로 해석되지 않습니다.

나는 이것이 REST 수축으로 인해 발생한다는 것을 알고 있습니다. 하지만 모든 레코드에 대해이 업데이트를 수행하는 방법을 알지 못합니다.

수정 개정을위한 새로운 컨트롤러를 만들 수 있습니까? 또는 people_controller 내부의 업데이트 메소드를 수정해야합니다. 여기

내 revise.html.erb에 대한 몇 가지 코드 : 다음 텍스트 필드에서의 PARAM을 제출하고 모든 사람

@people = Person.find(:all) 

@people.each do |person| 

person.version = params(:version) 

end 

네에게 갱신이 원하는

<h1>Update the All Bio's Revision'</h1> 

<% form_for(@people) do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :version %><br /> 
    <%= f.text_field :version %> 
    </p> 
    <p> 
    <%= f.submit "Update Revision" %> 
    </p> 
<% end %> 

<%= link_to 'Back', people_path %> 

나는 단지 레일 2와 같은 새로운 구문을 얻는 지 모르겠다.

도움을 주신 모든 분들께 감사드립니다.

답변

1

그래서 모든 게시물을 검색하고 하나씩 버전 속성을 설정합니다 (그리고 저장하는 것을 잊어 버림). Person.update_all을 사용하는 것이 더 나을 것입니다. 데이터베이스가 당신을 위해 일하게하십시오.

컨트롤러 동작의 경우 표준 RESTful 7에 추가 작업을 추가 할 때 아무런 해가 없습니다. 그것은 단지 "수정"이 예약 된 키워드처럼된다는 것을 의미합니다. 아무도 그/그녀의 신분증으로 가질 수 없습니다. 또한 "색인"작업의 맨 아래에 양식을 붙이면됩니다.

+0

감사 대답에 대한 링크와 텍스트 – theprojectabot

2

사람들의 모음에서 발생하는 경우 인력 컨트롤러에 속합니다. 이 같은 자원을 수정하여 사람들의 컬렉션에 경로를 정의 할 수 있습니다 :

map.resources :people, :collection => { :revise => :post } 

docs for adding a collection to your route

+0

감사합니다. – theprojectabot

관련 문제