2012-12-29 2 views
0

레일스가 .js 파일을 포함하는 방법에 대해 궁금합니다. 자산 파이프 라인과 마찬가지로 view에 저장된 .js 파일에 대해 궁금합니다. 예를 들어 like이라는 액션에 ajax 호출을 적용하려면 PostsController으로, 관련 게시물 코드는 like.js.erb의 게시물보기 폴더에 넣기 만하면됩니다. 그런 다음 사용자가 like 액션을 호출하면 자바 스크립트가 자동으로 트리거됩니다..js 파일을 포함한 레일

내 질문

  1. 은 이름이 일치하는 어떤 행동 조치가 호출 될 때 자동으로 호출되어 그 권리를 자바 스크립트 파일되어 있습니까?
  2. 특정보기에서 어떤 동작에도 해당하지 않는 javascript 파일을 포함하려면 어떻게해야합니까? 응용 프로그램 매니페스트에 그냥 포함 시키시겠습니까? 구체적으로 말해서, tag-autocomplete.js.erbviews/post입니다. assets 폴더로 이동하고 application.css에서 포함합니까?

감사합니다.

답변

0
  1. 예, 당신이 like.js.erb 및 like.html.erb 모두있는 경우 무슨 일이 일어날 즉시 표시되지 않습니다하지만. 그것은 하나 또는 다른 것이 선택 될 것으로 보이며 그것은 임의적 일 수 있습니다.

  2. 나는 스크립트 태그에서 일반적으로 자바 스크립트를 인라인합니다. 그것이 진정으로 오직 그 견해에 사용된다면 그것은 합리적입니다. 반면에 application.js는 캐싱되며 대역폭을 절약하여 사용자가 할 수있는 모든 것을 넣을 수 있습니다. 템플릿을 사용하는 것에 대해 묻는 것이므로 캐싱이 바람직하지 않다고 생각합니다. 이를 위해 JS에서 템플릿 사용을 최소화해야한다고 말합니다. 때로는 의미가 있지만 조심하십시오.

(참고 : this은 관련 기능의 핵심은 정의된다.)

+0

그것은 바로, 비록 임의 아니에요? 제어기에는보기가 js 파일임을 지정하는 조치에 대한 respond_to 블록이 있습니다. 두보기가 모두있는 경우 실수로 표시하지 않는 한 컨트롤러의 동작에 지정된보기가 트리거됩니다. – John

+0

Accept 요청 헤더는 Rails가 첫 번째 일치 응답자를 호출하는 데 사용할 수있는 형식을 결정하는 데 사용됩니다. 따라서 respond_to 블록에서 format.js, format.html 등을 정의하는 순서는 하나의 Rails가 선택한 순서에 영향을 줄 수 있습니다. –

+0

명시 적 렌더링은 질문과 관련이없는 것처럼 나는 암시 적 렌더링에만 관심이있었습니다. 암시 적 렌더링의 경우, 내가 아는 한 여전히 다소 임의적이지만, 이것은 명시 적 렌더링에 대해 많은 의미가 있습니다. – tehgeekmeister

관련 문제