2014-09-03 5 views
5

sono consapevole di questo post qui:Rubino sottile - classe per un div da variabile

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

e ho provato tutte e tre le soluzioni. Per quanto mi riguarda, sfortunatamente nessuno di loro lavora.

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 

tutto funziona come previsto quando voglio stampare le variabili come il testo sul sito web. Comunque ho bisogno dei div che contengono anche la variabile per il titolo. Qualunque cosa provi non riesco a ottenere la classe div con la variabile del titolo.

credo che ho bisogno di creare un qualcosa di aiuto in questo senso e un 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

Su quale riga esattamente ci si aspetta di avere una classe dinamica? – Surya

+0

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

+0

Mi dispiace ma tutti i metodi elencati sul link che hai pubblicato funzionano per me. Sono sicuro che c'è qualcosa di sbagliato nelle variabili che hai impostato. Si prega di notare che le variabili dovrebbero essere variabili Ruby e non una variabile JavaScript! – Surya

risposta

9

si potrebbe provare:

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

questo mi dà una classe vuota – domi771

+0

questo dovrebbe dare '

' – IS04

1

Utilizzare il supplente [] notazione per gli attributi CSS.

Queste tre linee sono equivalenti:

.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 

Per l'ultimo, si può mettere Rubino #{} nelle citazioni, in tal modo si può fare questo:

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

e IMO questa è la risposta più semplice .