1

나는 공공 장소에 중복 된 디렉토리 구조가있어서 자바 템플리트가 들어있는 것을 좋아하지 않으므로 here이 좋습니다. 나는 프로젝트에 뛰어들 것이다. 내 JS보기를 다른 의견과 함께 넣지 않고 나를 이야기 할 수있는 사람이라면 누구나이 일을하지 않을 이유가 있습니다. 내 생각 :Rails3 views-JS templating 디렉토리 구조

데이터의보기를 만들기 위해 백본, Jammit 템플릿 또는 다른 자바 스크립트를 사용하는 경우이 코드가 이상적으로/app/views/[object] 디렉토리에 있지 않아야합니까? 데이터를 표현하는 여러 가지 방법으로 애플리케이션을 설계하는 경우 모든 뷰가 같은 위치에 있어야하지 않습니까?

경로를 설정하고 레일스에 파일을 제공하는 것은 의미가 없지만 Jammit/Closure/another JS 압축 도구를 사용하는 경우 이미 Google 디렉토리 구조와 우리가 클라이언트에게 전송하는 JS. 그렇다면 코드 구성/유지 관리에 가장 적합한 템플릿을 넣을 수는 없습니까?

감사합니다.

답변

1

.js 파일을 app/views/[object]에 두지 않는 것이 좋습니다. 이는 레일스 응용 프로그램의 일부가 아니기 때문입니다. 그것들은 실제로 Backbone이나 Jammit 어플리케이션/프레임 워크의 일부이기 때문에 app 디렉토리에 속하지 않습니다. 파일이 .js.erb 파일 인 경우 해당 파일은 public/javascripts 디렉토리에 속하지 않으므로 app 디렉토리에 있어야합니다.

이 작업을 중단하는 사람은 없지만 .erb 템플릿 파일이 아니기 때문에 앱 디렉토리에 실제로 속하지 않습니다. 공개 .js 파일입니다. 핵심 Rails 앱에 포함되지 않은 이유는 .erb로 끝나지 않고 컨트롤러 나 루비 클래스 (예 : 이미지 및 CSS 파일)와 관계없이 독자적으로 작동한다는 것입니다.

/app/views 디렉토리에 있다면 Rails를 통해 제공해야한다는 점에 유의하십시오. 즉, 컨트롤러 서버를 설치해야하므로 추가 복잡성과 서버 부담이 가중됩니다. 더 나아가 루비 데이터를 컨트롤러에서보기로 전달할 필요가 없다면 단순히 정적 데이터를 제공하는 꽤 기본적인/무의미한 컨트롤러를 갖게 될 것입니다. 그리고 파일을 .js.erb로 이름을 바꾸어 이들 컨트롤러를 통해 서비스 할 수 있도록해야 할 것입니다. 파일이 공용 디렉토리에서 직접 제공되는 경우 필요하지 않으므로 훨씬 간단합니다.

하나의 디렉토리가 다른 디렉토리를 미러링하는 데는 아무런 문제가 없습니다. 예를 들어 RSpec spec/models, spec/views, spec/controllers와 같이 많은 일이 발생합니다.

+0

핵심 프레임 워크 파일이 있지만 프레임 워크의 목적은 응용 프로그램 개체의 javascript보기를 만들 수있게하는 것입니다. 그것들이 Rails 응용 프로그램의 일부가되어서는 안됩니까? – RSG

+0

답을 명확히하는 데 도움이되는 몇 가지 추가 정보로 답변을 업데이트했습니다. –

+0

감사합니다. JS 압축 도구는 모든 JS를 레일 디렉토리에서 공용 디렉토리로 '컴파일'하므로 경로를 만들거나 .erb를 JS 파일에 추가 할 필요가 없습니다. 나는 아마 그 마지막 문장으로 머리를 두들겨 막을 때까지 나를 괴롭히는 것을 멈출 필요가있다. – RSG