rails将代码块发送到partial

时间:2013-06-08 22:13:53

标签: ruby codeblocks renderpartial

Rails 3.2.13& ERB

我正在尝试将部分link_to项目发送给部分。我正在成功地向部分发送标题,如下所示。

<%= render :partial =>'form', 
       :locals => {:page_title => t(:'<h2>Editing Feature</h2>')}

我不喜欢的是我目前正在这样做:

<%= link_to 'Show', @feature %> |
<%= link_to 'Back', features_path %>

作为主页的一部分。我想把这个代码块发送到部分代码进行渲染。主要原因是simple_form是在partial中定义的,我有一个包含该页面上所有内容的井。除了页面底部的两个link_to项目。如果我可以以某种方式将它们传递给部分(我假设为代码块),那么我可以决定将它们放在何处以及如何在表单中呈现它们而不是事后的想法。

感谢。

1 个答案:

答案 0 :(得分:0)

通常我们使用partial来将HTML块分成单独的模块化组件并减少重复。 Partials与呈现它们的模板具有相同的变量上下文,因此,只需将链接重新定位到部分内容就不会有任何问题,一切都应该正常工作。

我认为更好的做法是将实例变量作为本地传递,以减少与控制器的耦合。类似的东西:

您的观点:

<%= render :partial =>'form', 
           :locals => {:page_title => t(:'<h2>Editing Feature</h2>'), 
           :feature => @feature} %>

<强> _form.html.erb:

<%= link_to 'Show', feature %> |
<%= link_to 'Back', features_path %>

这样,如果要在应用程序的其他位置渲染部分,则不需要使用实例变量。这可能有用的一个示例情况是循环遍历多个“特征”(一个索引视图)并吐出部分中定义的相关HTML。