인보이스 리소스가 있고 각 인보이스에 InvoiceLine 리소스가 중첩되어있어 매우 일반적인 중첩 리소스 패턴이 있다고 가정 해 보겠습니다.Rails에서 중첩 된 RESTful 경로 : 뷰를 어떻게 구성해야합니까?
이제 개별 인보이스 행을 표시하는보기를 인보이스의 행으로 배치해야합니까? 인보이스 라인은 invoices/_line.html.erb
에 속한 부분으로 렌더링해야합니까? 아니면 invoices_lines/show.html.erb
아래에 본격적인보기가 있어야합니까? 일반적으로 전자가 확실한 선택이지만 AJAX 기능을 추가하면 (Invoice Show보기에서 줄을 추가하고 편집 할 때) 상황이 복잡해집니다.
저는 정기적으로이 문제에 정말로 어려움을 겪고 있습니다. 그리고 나는 그것을 다루는 올바른 방법이 확실하지 않습니다.
map.resoures :invoices do |invoice|
invoice.resources :lines, :controller => :invoice_lines
end
관점의 표준 폴더 구조는 다음과 같습니다 :
app/
views/
invoices/
invoice_lines/
는
이를위한 편안하고 경로는 일반적으로 다음과 같이 보일 것입니다 : 여기
내가 생각하고 무엇을 이제, 모든 라인을 포함한 전체 송장을 렌더링 할 때, 내 성향은 각 라인을_line.html.erb
부분적으로
invoices/
아래로 만드는 것입니다. 그러나 라인 추가 및 편집을위한 AJAX 기능을 추가하려면 PUT 및 POST가 송장 라인 컨트롤러로 라우팅되므로
show.html.erb
보기에서
invoice_lines.erb
아래의 라인 행을 렌더링하지 않아야합니까?
그래서 내 의견은 다음과 같아야합니다
app/
views/
invoices/
index.html.erb
show.html.erb
_line.html.erb
invoice_lines/
또는 같은
: 나는 InvoiceLinesController는invoices/_line.html.erb
의 부분을 사용하여 AJAX 요청에 대한 응답을 렌더링 가진 사이에 붙어있어
app/
views/
invoices/
index.html.erb
show.html.erb
invoice_lines/
index.html.erb
show.html.erb
, 또는 라인 행 템플릿 코드를 invoice_lines/show.html.erb
에 넣고 invoices/show.html.erb
을 개별 라인을 구성 요소 또는 InvoiceLinesController # index에 대한 AJAX 요청으로 렌더링 할 수 있습니다.
어느 쪽도 그렇지 않습니다. 여기에 모범 사례에 대한 제안이 있습니까?
인보이스 컨텍스트에서 인보이스의 컨텍스트로 렌더링 할 때 인보이스 라인 컨트롤러에 자체 뷰 세트가 있어야하지만 레일스에는 "컨텍스트 별"뷰에 대한 확실한 규정이없는 것처럼 느껴집니다.
그런 귀청이 들지 않는 침묵은 기대하지 않았다. 충분히 명확하지 않습니까? 아니면 다른 모든 사람들도이 문제에 곤란을 겪고 있습니까? –