当你在阅读程序的时候,你经常碰到下面的程序
def my_method(*args)
options = args.extract_options!
puts "Arguments: #{args.inspect}"
puts "Options: #{options.inspect}"
end
有可能很多人看不多
现在给两个列子
1.
my_method(1, 2)
# Arguments: [1, 2]
# Options: {}
2.
my_method(1, 2, :a => :b)
# Arguments: [1, 2]
# Options: {:a=>:b}
现在看懂了吗? 不过一定要记住这个在ruby中没有,而是存在于rails中。
好了,让我们用这个简单的功能写个程序吧
def g_html(sym, *args)
options = args.extract_options!
if options[:class]
"<#{sym} class='#{options[:class]}'>#{args.first}</#{sym}>"
else
"<#{sym}>#{args.first}</#{sym}>" if args.first.present?
end
end