Ruby on rails Rails-将选项传递到接受块的助手方法中?
我有一个创建邮件模板行(html)的助手。我希望能够将样式传递到行(可选),如背景色Ruby on rails Rails-将选项传递到接受块的助手方法中?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个创建邮件模板行(html)的助手。我希望能够将样式传递到行(可选),如背景色 module MailHelper def module_row(&block) h << "<table border='0' cellpadding='0' cellspacing='0' width='100%'>" # more table html here h << capture(&block) # more
module MailHelper
def module_row(&block)
h << "<table border='0' cellpadding='0' cellspacing='0' width='100%'>"
# more table html here
h << capture(&block)
# more table html here
h << "</table>"
raw h
end
end
模块MailHelper
def模块_行(&block)
你当然可以
module MailHelper
def module_row(options={}, &block)
...
if options[:foo]
do_foo_stuff
end
end
end
<% module_row(foo: true) do |x| %>
...
<% end %>
你当然可以
module MailHelper
def module_row(options={}, &block)
...
if options[:foo]
do_foo_stuff
end
end
end
<% module_row(foo: true) do |x| %>
...
<% end %>
您可以将选项作为散列传递,如:
module MailHelper
def module_row(**opts, &block)
bgcolor = opts[:bgcolor] || '#FFFFFF'
...
h << "<table border='0' cellpadding='0' cellspacing='0' width='100%'>"
# more table html here
h << capture(&block)
# more table html here
h << "</table>"
raw h
end
end
或:
您可以将选项作为散列传递,如:
module MailHelper
def module_row(**opts, &block)
bgcolor = opts[:bgcolor] || '#FFFFFF'
...
h << "<table border='0' cellpadding='0' cellspacing='0' width='100%'>"
# more table html here
h << capture(&block)
# more table html here
h << "</table>"
raw h
end
end
或:
而我生活在过去,不知道双重人格。我还没有玩过关键字参数。在这里传递splat参数毫无意义:def module_row(options={},&block)
@mudasobwa您是对的。我已经离开这场比赛一年了,用stackoverflow把它带回来。我生活在过去,不知道doublesplat。我还没有玩过关键字参数。在这里传递splat参数毫无意义:def module_row(options={},&block)
@mudasobwa您是对的。我已经离开游戏一年了,用stackoverflow把它全部带回来。
module_row(bgcolor: '#AAAAAA') { block content }