2013-07-23 1 views
0

자바 스크립트, 스타일 시트 및보기 템플릿간에 이름을 공유하는 가장 쉽고/가장 우아한 방법은 무엇입니까? 일부 이니셜 라이저 파일에 정의 된 변수를 사용하여 수행해야합니까? Ryan Bates가 js.coffee.erb에 대한 이야기를 들었는데, 그 중 한 곳에서 .erb와 ruby를 사용하여 문제가 무엇인지 언급하지 않았습니다.CSS/자바 스크립트 /보기 템플릿 간의 이름 공유

x.html.erb - <div id="awesomediv">Awesome</div>

x.css.scss - #awesomediv {background-color: #333333}

x.js.coffee - $('#awesomediv').text("You are awesome")

뭐죠 구성하고 모든 "awesomediv을 건조하는 가장 좋은 방법 "이름이 파일 전체에 퍼져 있었습니까? RailsConf에서 그의 데모 중 하나에서 DHH 사용 변수를 보았지만 그의 디렉토리 구조를 따르지 않았거나 다른 파일을 변수로 구성하는 방법을 따르지 않았습니다.

"awesomediv"라는 이름을 "veryawesomediv"로 변경해야 할 경우 많은 다른 위치/파일을 변경해야합니다. 보통 크기의 애플리케이션이라 할지라도 시간이 지남에 따라 이러한 변경 작업을 수행해야합니다.

저는이 상황을 관리하는 데있어 다른 사람들에게 잘 작동하는 모범 사례/무언가를 찾고 있습니다.

답변

0

나는 모든보기/컨트롤러에서 설정 개체에 액세스 할 수있는 rails_conf gem을 사용했습니다. 그래서 css.erb에서 당신은 가질 수 있습니다

#<%= Settings.tag_ids.awesome %> { 
    //css rules 
} 

이것은 레일 3.1 이상에서 작동한다고 생각합니다.

모든 레이아웃

tag_ids = <%= Settings.tag_ids.to_json.html_safe %>; 

을에 포함 된 자바 스크립트 파일에 다음 당신의 JS가

tag_ids.awesome 
+0

감사로 참조 할 수 있습니다! 나는이 보석을 보게 될 것이다. 이 보석은 JS 파일에 변수를 추가하여 작동합니다. 그러나 모든 정보는 사전 처리/컴파일 시간에 사용 가능하기 때문에 JS 엔진에서 런타임에 종속성을 가지기보다는 배포 할 때 모든 변수를 컴파일 타임에 게이트에서 바로 확인하고 싶습니다. – sat

+0

그래, 변수가있는 아주 작은 별도의 js 파일을 만드는 경향이있다. – Slicedpan