2016-12-14 1 views
0

아래 부분에 현지인을 통해 주입되는 classy 클래스를 얻으 려하지만, 고급스러운 메소드를 계속 얻지는 못합니다.지역 변수를 레일에 삽입합니다.

// 뷰

<%= render layout: "layouts/partial", locals: {className: "classy"} do %> 
... 
<% end> 

// 부분

<div class="regular-div <%=className if className?%>"></div> 
+0

당신은 무엇을 의미합니까

<div class="<%= class_list('regular-div', local_assigns[:className]) %>"></div> 
? 지역 변수'className'을 전달하고 있으며 또한'className'을 참조하고 있습니다. 이 오류가 오타 또는 오류가 아니라고 확신합니까? – max

+0

'className'이 (가) 부분적으로 "고상한"클래스로 들어 가지 않습니다. 내 div가 "classy"클래스를 얻길 원합니다. – stackjlei

+0

local_assigns.has_key (className) %>'이면 <% = className이어야합니다. 'className'과'className? '은 같지 않기 때문에. 'local_assigns.has_key (: className)'는 지역 변수가 설정되어 있는지 안전하게 확인하는 방법입니다. – max

답변

1

로컬 변수 안전하게 로컬 변수를 액세스하기 위해 사용 local_assigns.has_key?(:some_key) 또는 local_assigns[:some_key] 설정되어 있는지 확인하는.

클래스의 목록을 구축하는 일반적인 작업을 처리하는 멋진 방법은 다음과 같습니다

module ApplicationHelper 
    # Takes an array or list of classes and returns a string 
    # Example: 
    # class_list('a', 'b', nil, 'c') 
    # => "a b" 
    # class_list(['a', 'b', nil, 'c']) 
    # => "a b c" 
    def class_list(*classes) 
    [*classes].flatten.compact.join(' ') 
    end 
end 

은 그럼 당신은 할 수 있습니다 :

는 는
관련 문제