请注意,这不是要求任何有效解决方案的问题,而是最佳实践是什么的问题?种类。
在我的观点中,我有很多这样的代码出现(我使用 HAML):
= t("some.key")
%b= t("other.key.#{string}")
%i= string
一旦它在许多不同的地方使用,我决定将它提取给一个助手。但我意识到我不明白什么是最干净的方法。
我可以考虑使用字符串连接+
(或) 并打扰而不是仅仅声明三个字符串。"%s %s %s" % [...]
[...].join("\n")
" "
"\n"
html_safe
我认为这concat
就是应该以这种方式工作的
def long_string(string)
concat t("some.key")
concat content_tag(:b, t("other.key.#{string}"))
concat content_tag(:i, t(string)
end
...并且它有效,但它迫使我执行助手而不是评估它,这不是惯用的,我的意思是使用
%p- long_string(string)
代替
%p= long_string(string)
当然,我可以将它提取到部分,但对于三行代码来说似乎太多了。
也就是说,我是否错过了一些简洁优雅的方式来在帮助程序中连接三个丰富的 HTML 行,或者concat
/partial/dirty 数组连接是我唯一的选择?