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

3

37

In rails slim (http://slim-lang.com/) the syntax for defining a new div with a class name "sample" is the following:

 .sample
      = "Content goes here"

this will create:

 <div class="sample">
      Content goes here
 </div>

I want to define a div's class according to a rail's helper, a variable, or other things.. such as, in rails:

 <div class="sample #{@variable.name}">
   Content goes here
 </div>

I have no idea how to do this in slim:

 .sample #what else goes here?
   Content goes here

Anyone know how?

Rateable answered 12/10, 2012 at 3:35 Comment(0)
D
65

How about

div[class="sample #{@variable.name}"]

or even

div class=["sample", @variable.name]

or

.sample *{:class => [@variable1.name, @variable2.name]}
Danidania answered 12/10, 2012 at 3:47 Comment(2)
thanks. all three work. the first and second are the nicest format, but they all function. thanks again!Rateable
Another option, which I prefer: div class="sample #{@variable.name}"Honeymoon
N
9

You can use parentheses, curly braces or just a space

.first-class(class="second-class-#{ruby_call}")

.first-class *{class: "second-class-#{ruby_call}"}

.first-class class="second-class-#{ruby_call}"
Newsstand answered 8/5, 2015 at 17:34 Comment(0)
F
0

For slim templates, I've been using the parenthesis notation. You can add additional content on the same line with the equals sign ("="), but be sure to include a space:

h1 class=("sample #{@variable.name}") = @variable.to_s
Felloe answered 2/7, 2019 at 15:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.