2014-09-03 12 views
5

tôi biết bài này ở đây:của Ruby mỏng - lớp cho một div từ biến

Ruby Slim - How do you define an element's class with a rails helper or variable?

và tôi đã thử tất cả ba giải pháp. Đối với tôi tiếc là không một trong số họ đang làm việc.

forum.rb

.panel 
    .panel-heading 
    .span = @forum.name 
    .panel-body 
    .row 
     .col-md-7 #{t('global.topic')} 
     .col-md-3.value.title 
     .col-md-1.value.topic 
     .col-md-1.value.date 

forum_feed.js.coffee

window.ForumFeedUI = flight.component -> 
    @defaultAttrs 
    titleSelector: '.value.volume' 
    topicSelector: '.value.topic' 
    dateSelector: '.value.date' 

    @refresh = (event, data) -> 
    @update @select('volumSelector'), data.volume 
    @update @select('topicSelector'), data.topic 
    @update @select('dateSelector'), data.date 

Tất cả các tác phẩm như mong đợi khi tôi muốn in các biến dưới dạng văn bản trên trang web. Tuy nhiên, tôi cần các div chứa biến số cho tiêu đề. Bất cứ điều gì tôi cố gắng tôi không thể có được các lớp div với biến của tiêu đề.

Tôi tin rằng tôi cần phải tạo ra một cái gì đó helper dọc theo những dòng và một content_tag:

content_tag(:div, content_tag(:p, "Hello world!"), class: "strong") 


div = t(".#{forum_title title}") 


def forum_title(title, &block) 
    content_tag :div, class: "col-md-3-#{title}" do 
    capture(&block) 
    end 
end 
+0

Dòng nào chính xác bạn mong muốn có một lớp động? – Surya

+0

@ .col-md-1.value.title – domi771

+0

Tôi xin lỗi nhưng tất cả các phương pháp được liệt kê trên liên kết mà bạn đã đăng hoạt động cho tôi. Tôi chắc chắn rằng có điều gì đó sai với các biến mà bạn đã đặt. Xin lưu ý rằng các biến phải là biến của Ruby và không phải là Biến JavaScript! – Surya

Trả lời

9

bạn có thể thử:

.col-md-7 class="your-#{dynamic class}" 
+0

điều này mang lại cho tôi một lớp trống – domi771

+0

điều này sẽ cung cấp cho '

' – IS04

1

Sử dụng luân phiên [] ký hiệu cho các thuộc tính css.

Những ba dòng là tương đương:

.col-md-6.title#foo Some content 

div.col-md-6.title#foo Some content 

div[class="col-md-6 title" id="foo"] Some content 

Đối với người cuối cùng, bạn có thể đặt của Ruby #{} vào dấu ngoặc kép, do đó bạn có thể làm điều này:

- myclass = "col-md-6" 
div[class="#{myclass} title" id="foo"] 

Và IMO đó là câu trả lời đơn giản nhất .

Các vấn đề liên quan