2012-11-23 8 views
0

내 컨트롤러에 format.js를 추가했지만 색인 페이지를 볼 때 여전히 js를 index.js.erb에 가져올 수 없습니다. 내가 알아낼 수있는 유일한 것은 그것이 모델명 때문에 있어야한다는 것입니다. 내 모델의 이름이 Business이기 때문에자바 스크립트가 실행되지 않습니다 (format.js 포함)

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'business', 'businesses' 
end 

을 내 inflections.rb 파일에 추가해야했습니다.

내보기 /의 JS 뷰/기업에 위치/*

내 머리를 꺼내 전에 도와주세요!

나는 index.js.erb 파일에있는 모든은 다음과 같습니다

alert(1); 

은 물론 목표는 드디어 문제가 해결 얻을 때 나는 내가 그것을가 작동 알려 주셔서, 경고를 얻을 것입니다.

답변

3

색인 페이지를 어떻게 부르는거야? 브라우저에서 색인 페이지를 방문하면 index.js이 렌더링되지 않습니다. 그것이 포맷 사용의 핵심입니다. javascript (ajax 호출과 같은 것)를 사용하여 인덱스 메소드를 호출해야합니다. 귀하의 모델 이름은 아무 상관이 없습니다.

+0

좋습니다 .../model/index로 라우팅 된 페이지에 액세스 할 때마다 페이지가로드 된 후 /app/views/pluralized-model/index.js.erb가 실행되어야합니다 ... 편집과 같은 다른 작업과 동일합니다 (/app/views/pluralized-model/edit.js.erb를 실행해야합니다). 문제는 이것이 일어나지 않는다는 것입니다. – Brandon

+0

그게 싫어. 당신은 개념을 잘못 이해하고 있습니다. respond_to 블록은 요청 형식에 따라 적절한 출력을 렌더링합니다. 따라서 app_name/clients/1 /을 호출하면 format.html이 실행되고 app_name/clients/1/edit.js를 호출하면 format.js 블록이 실행됩니다. –

+0

아, 이전에 ... 편집 작업이 호출 될 때 edit.js.erb 파일이 실행되지 않는 이유는 아직 알지 못했습니다. 내가 2 개의 다른 웹 사이트를 가지고 있고 지금 실행하고 있기 때문에 그것이 사실이라고 생각하는 사실을 알고 있습니다. – Brandon

0

자바 스크립트 실행은 모델 이름과 아무 관련이 없습니다. 컨트롤러 또는 모델의 이름을 기반으로 JS 파일을 포함하는 것도 아닙니다. 자산 파이프 라인을 사용하는 경우 다음이 필요합니다. 어떻게 이것을 이해하지 않으면하는 index.js이 /assets/javascripts/index.js에 있음을 가정

는 /app/assets/javascripts/application.js

//= require ./index 

에 다음을 추가 작품에서, 당신은 여기에있는 자산 파이프 라인에 대한 Ruby on Rails 안내서를 살펴볼 수 있습니다 : http://guides.rubyonrails.org/asset_pipeline.html

참고로, 굴곡법 사용법에서는 Rails와 같은 프레임 워크를 사용하는 것이 좋습니다 , 그것으로 오는 협약을 시도하고 사용하십시오. 그것은 미래의 상심을 저장할 것입니다. 귀하의 모델 사업의 이름을 귀하의 테이블이 사업장이되도록하십시오. 다음과 같은 것을 원하지 않는다면 :

has_one :businesses 
+0

다시 내 게시물을 읽으십시오. 내 모델은 비즈니스라고하지 않으며, 비즈니스라고합니다. 레일은 's'로 끝나는 단어의 단점을 가지고 있기 때문에 맞춤 굴곡을 구현해야했습니다. 파일 위치에 관한 한, js 파일은 /app/views/businesses/index.js.erb이며, business # index로 라우트 된 URL을 탐색 할 때 실행되어야합니다. 그래도 실행되지 않습니다. – Brandon

+0

죄송합니다. 질문을 잘못 읽었습니다. HTML 동작이 실행 된 후에 JS 동작을 시작하려면 HTML을로드 한 후에 JS에 HTML을 포함시켜 JS를 요청해야합니다. –

관련 문제