2011-09-16 6 views
5

Rails 3.1.0 프로젝트에서 background_color 및 link_color와 같은 몇 가지 맞춤 속성을 가진 회사가 있습니다. 그래서 같은 일부 말대꾸 변수를 설정할 수 있도록하려면 :Sass에서 Rails 객체에 액세스하려면 어떻게해야합니까?

$background_color: <%= @company.background_color %> 
$link_color: <%= @company.link_color 

... 

@company이 전무하기 때문에 말대꾸가 일을 할 때 작동하지 않습니다. 동적 인 방식으로이 문제를 해결하는 방법을 모르겠습니다 (회사를 만들 수 있고 색상을 변경하고보기를 즉시 업데이트 할 수 있음). 어떤 제안?

+0

사이트/페이지 당 하나만. – complex

답변

0

난 당신이 당신이 가지고있는 뭔가를 할 수 있다고 생각하지만, 당신은 내가 몇 방법을 생각할 수

+0

아, 그 말을 했어야했는데. 그것은 application.css.sass.erb에 있지만 주사위는 없습니다. – complex

+0

그런 다음 컨트롤러를 통해 요청을 실행해야하므로 CSS 요청 또는 기타 요청에 응답하는 컨트롤러에 연결되는 링크 태그를 만드십시오. – Matthew

1

'.css.scss.erb'에 파일의 확장자를 변경해야 내 머리 꼭대기에서 :

  1. 컨트롤러를 통해 스타일 시트를 제공하십시오.
  2. CSS 클래스를 사용하여 컨트롤러, 인라인 된 부분 또는 CSS @import을 통해 색상을 구성하고 CSS를 제공하십시오.

컨트롤러를 통해 스타일 시트를 제공하는 것은 매우 간단하므로 말할 내용이 많지 않습니다. 이것은 약간 추악하고 성 가실 수 있습니다. 두 번째의 경우

, 당신은 몇 가지 추가 CSS 클래스를 추가 할 것 : 그런 다음

.custom-bg { 
    background-color: some-default-bg; 
} 
.link-fg { 
    color: some-default-fg; 
} 
/*...*/ 

그들의 보통 CSS 클래스와 custom-bg을 필요 사용자 정의 배경색을 사용하여 필요한 모든 요소를; 다른 설정 가능한 값에 대해서도 비슷한 헛소리가 필요합니다. 사용자 정의 CSS를 제공하려면 표준 ERB 부분을 사용하여 <style> 요소를 HTML로 인라인하거나 컨트롤러 (<style src="..."> 또는 @import 통해)를 통해 CSS를 제공 할 수 있습니다. 그래서 당신은 당신의 HTML에있는 오래된 학교의 여러 CSS 클래스로 SASSy의 장점을 가짜로 만들 것입니다.

JavaScript가 있습니다. 당신은 다음과 같은 것들로 직접 자신의 색상을 조정해야 할 요소를 식별하고 조정할 수있는 방법이 필요 것 :

$('.need-custom-background').css('background-color', '...'); 
0

이 후속 위해, 나는 스타일 시트 컨트롤러를 생성했지만 그것은 오히려 인위적인했다 Sass 구문 분석 및 자산 파이프 라인로드 경로가 모두 올바르게 작동합니다. 나는 그것을 덤핑하고 스타일을 재구성하여 회사 업데이트시 S3로 재생성되고 업로드되는 각 회사에 대한 정적 스타일 시트를 생성 할 수있게되었습니다.

관련 문제