문제

나는 Ruby on Rails를 가르치기 위해 간단한해야 할 일 목록 응용 프로그램을 만들고 있지만 문제가 발생합니다. 왼쪽에 확인란이있는 할 일 항목과 하단에 "업데이트"버튼이있는 간단한 양식이 있습니다.

] 설거지하다
] 쓰레기를 밖으로 가지고
] 세상을 점령하십시오
( 업데이트 )

각 할 일 항목은 데이터베이스에서 "완성 된"부울 필드가있는 별도의 레코드입니다. 양식이 각 항목의 "완성 된"필드를 True로 설정할 수있는 조치에 체크 오프 항목 ID 목록을 제출하기를 원합니다.

여러 모델을 참조하는 형식을 만드는 방법을 알고 있지만 동일한 모델의 여러 레코드를 참조하는 형식은 아닙니다. 팁이 있습니까?

감사!

도움이 되었습니까?

해결책

Railscasts는 당신의 친구입니다!

http://railscasts.com/episodes/52-update-through-checkboxes

정말 간단합니다.

# routes.rb
map.resources :tasks, :collection => { :complete => :put }

# tasks_controller.rb
def complete
  Task.update_all(["completed_at=?", Time.now], :id => params[:task_ids])
end

# views\tasks\complete.html.erb
<% form_tag complete_tasks_path, :method => :put do %>
  <ul>
  <% for task in @incomplete_tasks %>
    <li>
      <%= check_box_tag "task_ids[]", task.id %>
      <%= task.name %>
    </li>
  <% end %>
  </ul>
  <%= submit_tag "Mark as Complete" %>
<% end %>

다른 팁

우와. 그것은 약간의 타이밍입니다. RSS 리더 의이 질문 바로 직전 항목은 최신입니다. Railscast Ryan Bates에서 그리고 그것은 당신이 요구하는 것을 정확히 다루는 것처럼 보입니다.

원격 기능을 사용하여 항목을 확인할 때 데이터베이스를 업데이트하고 업데이트 버튼을 모두 제거하지 않겠습니까?

양식을 작성할 때 각 레코드에 대한 ID를 포함시킬 수 있으므로 컨트롤러가 게시물의 항목을 반복하여 각 레코드를 찾아서 그에 따라 업데이트 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top