Torsten Schrör dijo [Sun, Feb 28, 2016 at 09:44:18PM -0800]: > Hello engineerDave, > > thank for you quick response. > But the convert from array to hash is not my problem. > > I try do write an global list.haml for all tables to reduce the code > > this is the list > (...) > > an input a have an array of fieldnames an fields as an helper > > def header(table) > h={'default'=>Array[Array['ID','id']]} > h['customer']=Array[Array['Name','name'],Array['Kundennr','reference']] > h['domain']=Array[Array['Name','name'],Array['Kunde',"customer.name"] ] > @header=h[table] > @header=h['default'] if !@header || @header.count==0 > end > > this works fine for normal fields(this meen fields in the table direct) > but if i try do access to an referencetable this not works > for instance domain.customer.name > > direcly in haml this works > > -@domainlist.each do |d| > #{d.id} > #{d.customer.name} > > my problem is, that i find no syntax to handle this with a variable. > > %h=b[h[1]] > -> this works only for fields in the table, references are empty > > do you have an idea?
Ahh, right, welcome to the wonderful world of metaprogramming ;-) In Ruby, you can "send" a string to arbitrary object, that is, you can call the method of the corresponding name. Take this as an example: >> string = 'This is a string' => "This is a string" >> queries = ['length', 'reverse', 'empty?' ] => ["length", "reverse", "nil?"] >> queries.map {|q| string.send(q) } => [16, "gnirts a si sihT", false] But be *very* aware that sending arbitrary strings to be called on an object, specially if any user-defined data is involved, can become a huge security liability. -- You received this message because you are subscribed to the Google Groups "Haml" group. To unsubscribe from this group and stop receiving emails from it, send an email to haml+unsubscr...@googlegroups.com. To post to this group, send email to haml@googlegroups.com. Visit this group at https://groups.google.com/group/haml. For more options, visit https://groups.google.com/d/optout.