반응형
Haml에서 조건이 참인 경우 클래스 추가
만약 post.published?
.post
/ Post stuff
그렇지 않으면
.post.gray
/ Post stuff
나는 이것을 rails helper로 구현했으며 추악한 것처럼 보인다.
= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
/ Post stuff
두 번째 변형 :
= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
/ Post stuff
더 간단하고 haml에 특정한 방법이 있습니까?
UPD. Haml 특정이지만 여전히 간단하지는 않습니다.
%div{:class => "post" + (" gray" unless post.published?).to_s}
/ Post stuff
.post{:class => ("gray" unless post.published?)}
- classes = ["post", ("gray" unless post.published?)]
= content_tag :div, class: classes do
/Post stuff
def post_tag post, &block
classes = ["post", ("gray" unless post.published?)]
content_tag :div, class: classes, &block
end
= post_tag post
/Post stuff
실제로 가장 좋은 방법은 도우미에 넣는 것입니다.
%div{ :class => published_class(post) }
#some_helper.rb
def published_class(post)
"post #{post.published? ? '' : 'gray'}"
end
HAML에는이를 처리 할 수있는 좋은 방법이 있습니다.
.post{class: [!post.published? && "gray"] }
이것이 작동하는 방법은 조건이 평가되고 참이면 문자열이 포함되지 않으면 클래스에 문자열이 포함되는 것입니다.
업데이트 된 루비 구문 :
.post{class: ("gray" unless post.published?)}
참고 URL : https://stackoverflow.com/questions/3453560/append-class-if-condition-is-true-in-haml
반응형
'Programing' 카테고리의 다른 글
Pandas 데이터 프레임에서 열 수를 어떻게 검색합니까? (0) | 2020.06.10 |
---|---|
JSON 문자열을 NSDictionary로 역 직렬화하려면 어떻게해야합니까? (0) | 2020.06.10 |
git-diff에서 패치 호환 출력을 얻을 수 있습니까? (0) | 2020.06.10 |
공급자 com.google.firebase.provider.FirebaseInitProvider를 가져올 수 없습니다 (0) | 2020.06.10 |
iOS 앱에서 문서 폴더 안에 폴더 만들기 (0) | 2020.06.10 |