2009-08-15 3 views
4

의 내가 사용자 로그인과 로그 아웃을 제어하는 ​​SessionsController을 가지고,하지만 난 정말 필요로하는 작업 만이 새로운, (인증 및 로그인에 대한)을 만들고 (로그인 폼을 표시하기위한) 로그 아웃에 대한를 파괴 할 수 있습니다 가정 해 봅시다 사용자.Rails 컨트롤러에서 모든 REST 동작을 구현하지 않는 것이 좋습니까?

컨트롤러에이 세 가지 동작이 있거나 올바르게 구현하기 위해 모두 구현해야하는 경우 문제가 있습니까?

두 번째 작은 질문입니다. 어떤 사람들은 스캐 폴딩이 좋지 않으며 코드를 직접 작성해야한다고 말합니다.하지만 꽤 유용하고 시간을 절약 할 수 있습니다.

스캐 폴딩을 사용하는 것이 좋습니까? 아니면 피해야 할 악의적 인 이유는 무엇입니까?

답변

10

그것은 단지 당신이 그 자원에 대한 지원을 할 편안하고 조치를 작성하려면 확실히 괜찮습니다. 7 가지 작업 모두를 정의 할 필요는 없습니다. 실제로 대부분의 컨트롤러는 7 가지 동작을 모두 사용하지 않습니다.

는 비계를 사용하는 OK인가, 아니면 피해야한다 악 왜?

내장 된 레일 스 캐 폴딩은 주로 시작할 때 출발하기 위해 설계되었습니다. 개인적으로 몇 가지 이유로 일상적인 개발에 사용하지 않습니다. 나는 기존의 응용 프로그램

  • 가가를 생성한다 (나는 보통 그들 모두를 원하지 않는 말한 것처럼)은 모든 컨트롤러 액션을 생성 한
  • 를 사용하고자 할 때

    • IT는 CSS 레이아웃 파일을 생성 거의 사용하지 않는 모든 작업에 대한 XML 형식
    • "편집"및 "새"작업이 모두 필요할 때 부분적으로 양식을 넣지 마십시오.
    • 가끔씩 다른 테스트 라이브러리 (예 : Shoulda 또는 RSpec)

    그러나 나는 발달 속도를 높이기위한 비계의 팬입니다. 이것이 제가 거의 항상 사용하는 nifty_scaffold generator을 만든 이유입니다. 위에서 언급 한 문제가 없습니다.

  • +0

    +1 - 좋은 답변입니다! –

    4

    필요한 조치 만 구현하는 데는 아무런 문제가 없습니다. Rails 2.3에서는 경로에서도보다 명확하게 표현할 수 있습니다.

    map.resources : foo는 : 단지 => [: 작성 : 파괴 : 새]는

    1

    REST는 실제로 4 개의 동사를 가지고 있음을 기억하십시오. GET, POST, UPDATE PUT 및 DELETE. Rails의 편집 및 새 작업은 GET 동사의 해결 방법으로 자원 편집을위한 양식을 표시합니다. 인덱스 동작은 다른 리소스에 대한 GET이며, 다른 리소스와 함께 번들로 제공됩니다. 응용 프로그램 개발 컨텍스트에서 동일한 파일에 포함시키는 것이 더 합리적이기 때문입니다.

    +1

    REST는 아무런 동작도 정의하지 않습니다. 나는 네 개의 주요 HTTP 동사 GET, PUT, POST 및 DELETE를 언급하고 있다고 가정합니다.HTTP에는 다른 동사가 있습니다. –

    관련 문제