ruby on rails - HAML: tr[@user] translates to class and ID, but how? -


as know, haml translates tr[@user] <tr class="user" id="user_123">.... how achieve this? through internal magic? or using functionality of @user object?

what want achieve following. have contact model company , person subclass. when using tr[@company], i'd haml following:

<tr class="contact company" id="company_123"> 

...instead of only:

<tr class="company" id="company_123"> 

is there easy way achieve this?

thank you.

you can implement haml_object_ref method in model override haml uses value of class attribute.

if use direct subclasses of contact simple should work in contact model:

def haml_object_ref   "#{self.class.superclass.to_s.underscore} #{self.class.to_s.underscore}" end 

(this uses activesupport underscore method.)

if want use contact instances directly, or subclasses of person or company, this:

def haml_object_ref   classes = []   klass = self.class   while klass <= contact     classes << klass     klass = klass.superclass   end   classes.map{|c| c.to_s.underscore}.join(' ') end 

this produce class="contact" instance of contact, class="contact person' instance of person , class="contact person employee" (hypothetical) employee subclass of person.


Comments

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -