Chỉ để giúp các nhà phát triển khác, vì không có câu hỏi tương tự trên SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Chỉ để giúp các nhà phát triển khác, vì không có câu hỏi tương tự trên SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Câu trả lời:
Xem các ví dụ dưới đây:
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Cách tiếp cận tương tự có thể được sử dụng để gán giá trị động cho các thuộc tính khác.
div.councilor class=(councilor.retired? ? "retired" : "")
tạo ra:div.councilor.retired
Nếu bạn có nhiều điều kiện, tôi đang làm ngay bây giờ một cái gì đó như
div class=(('foo ' if is_foo?) + ('bar' if is_bar?))
Mặc dù tôi cảm thấy đó là một nhược điểm nếu is_bar? trả về false và kết quả HTML được tạo là
<div class="foo "></div>
(nhược điểm là ký tự trống sau dấu foo
). Nếu ai đó có giải pháp cho điều đó thì thật tuyệt vời.
String#rstrip
trong trường hợp này với 2 điều kiện: div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Hoặc div class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
đối với một số điều kiện.