我把一些項目Rails和我想複製這個PHP代碼:如何在Ruby中複製此PHP代碼?
http://www.php.net/manual/en/functions.anonymous.php#106046
到目前爲止,我有這樣的:
def html (tag, id = "", hclass = "")
hopen = "<#{tag}"
hclose = "</#{tag}>"
unless id == ""
hopen += " id=\"#{id}\""
end
unless hclass == ""
hopen += " class=\"#{hclass}\""
end
hopen += ">"
return lambda { |data| print hopen,data,hclose}
end
我需要創建可變變量,如這在: PHP
$layout = array('container','header','pmain','lsidebar','rsidebar','footer');
foreach ($layout as $element)
$$element = html ("div", $element);
這裏是我的RUBY原型
layout = [:body, :header, :sidebar, :footer]
##I know this isn't right, but how do I create the dynamic functions like PHP???
layout.each {|x| instance_variable_set "@#{x}", 0 }
另外,我需要調用的功能,反正有做到這一點,而不調用方法?如果我必須嵌套呼叫,它會變得混亂。
h1 = html(:h1)
mainx = html(:div)
puts mainx.class
puts mainx.call(h1.call("Blog!"))
謝謝,我想我試圖重新發明輪子。儘管如此,我想要一個非常緊湊的表示法。仍然好奇如何在Ruby中做這些事:)。 – Len
@Len:['content_tag'](http://api.rubyonrails。org/classes/ActionView/Helpers/TagHelper.html#method-i-content_tag)需要很多選擇,但是你不需要全部提供。它可以像這樣緊湊:'content_tag:h1,「Blog!」'。然而,你的代碼非常接近,很顯然你正在理解的道路上。這是一篇可能有所幫助的(老式的)文章:http://www.igvita.com/2007/03/15/block-helpers-and-dry-views-in-rails/ –
是的,我想用一個數組來創建那些是函數指針的變量。另外,我想使用這些文字作爲函數的參數。我要從我在這裏學習的東西做更多的研究......謝謝! – Len