从Rails Helper返回多个标签的最佳方法是什么?

我想创建一个隐藏字段并在一个帮助器中创建一个链接,然后输出到我的erb。

 

应该把结果拿出来

 link_to "something", a_path form.hidden_field "something".tableize, :value => "something" 

帮助者的定义是什么样的? link_to和form.hidden_​​field的细节并不重要。 重要的是,如何从两个不同的调用返回输出。

有几种方法可以做到这一点。

请记住,像link_to等现有的rails助手只输出字符串。 您可以将字符串连接在一起并返回(如果事情很简单,那就是我大部分时间都在做的事情)。

例如:

 link_to( "something", something_path ) + #NOTE THE PLUS FOR STRING CONCAT form.hidden_field('something'.tableize, :value=>'something') 

如果你正在做更复杂的事情,你可以把代码放在局部,并让你的助手调用render :partial

如果你做的事情比那更复杂,那么你可能想看一下errtheblog的block_to_partial助手,这很酷

到目前为止,我提出的最好的是:

 def my_cool_helper(name, form) out = capture { link_to name, a_path } out << capture { form.hidden_field name.tableize, value => 'something' } end 

有没有更好的办法?

如果你想缓冲除了字符串之外的其他输出,那么你可以使用concat而不是+ 。 看到这个 – http://thepugautomatic.com/2013/06/helpers/