0

导轨 3.2.13 和 ERB

我正在尝试将一些链接到项目发送到部分。我正在向部分成功发送标题,如下所示。

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

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

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

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

谢谢。

4

1 回答 1

0

通常,我们使用 partials 将 HTML 块拆分为单独的模块化组件并减少重复。部分具有与呈现它们的模板相同的变量上下文,因此,只需将链接重新定位到部分,一切都应该正常工作。

但是,我认为更好的做法是将您的实例变量作为本地变量传递,以减少与控制器的耦合。就像是:

您的看法:

<%= 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。

于 2013-06-08T23:03:30.763 回答