【发布时间】:2017-01-15 17:59:18
【问题描述】:
在 ERB 或 HAML 中,我需要能够根据条件的输出评估一个函数或不同的函数,同时对任一函数使用相同的 HTML 块。
在 HAML 中,它会是这样的:
- is_a = @thing.is_a?
= (is_a ? f.method_a : f.method_b) arg_1, |block_arg1| do
#thing
.blah
.inner-thing
= block_arg1.some_method
请注意,在我的伪代码的第 2 行,我试图根据条件评估一个函数或另一个函数。但我需要将相同的参数传递给任何一个,尤其是因为我不想重新键入 DO 块。
也许我可以通过使 DO 阻止命名函数来避免该问题(“我不想重新键入...”)?如何将 HAML 或 ERB 块转换为命名的 Ruby 函数?
我正在使用 Ruby-on-Rails 4。没关系;这看起来更像是一个 ruby 语法问题,而不是一个框架问题。
【问题讨论】:
标签: ruby haml erb syntactic-sugar