【发布时间】:2017-10-25 10:26:50
【问题描述】:
我有一个 Ruby 中的方法(一个 Rails 助手),我想写得更好,这个方法需要很多选项作为哈希,如果这些选项不存在,它也有一些默认值。
目前看起来是这样的:
def some_html_helper(options = {}, &block)
option1 = options.fetch(:option1, "default option1 value")
option2 = options.fetch(:option2, "default option2 value")
option3 = options.fetch(:option3, "default option3 value")
option4 = options.fetch(:option4, "default option4 value")
option5 = options.fetch(:option5, "default option5 value")
option6 = options.fetch(:option6, "default option6 value")
"return html with options used here and content... #{capture(&block)}"
end
因此可以传入一个或不传入一个选项,其余的都有默认值,如下所示:
<%= some_html_helper option3: "not default value", do %>
Some content...
<% end %>
有没有更好的方法来编写这样的方法?
【问题讨论】:
标签: ruby-on-rails ruby arguments block