def background "#e9eaec" end def footer_link_color "#836448" end
我希望这些方法暴露在视图中,但我更喜欢帮助器更简洁一些.将哈希转换为方法(或其他)的最佳方法是什么?
解决方法module MyHelper {:background => "#e9eaec",:footer_link_color => "#836448"}.each do |k,v| define_method(k) {v} endend
虽然我不认为为你的第一种方法的可读性交易这些简洁性一定是个好主意.
如果要概括它,可以将以下方法添加到Module类:
class Module def methods_from_hash(hash) hash.each do |k,v| define_method(k) {v} end endend
然后在你的帮手中调用methods_from_hash(:background => …).
总结以上是内存溢出为你收集整理的制作方法的方法:简单的Ruby元编程全部内容,希望文章能够帮你解决制作方法的方法:简单的Ruby元编程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)