【问题标题】:rails sending code block to partialrails将代码块发送到部分
【发布时间】:2013-06-08 22:13:52
【问题描述】:

Rails 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 项目。如果我能以某种方式将它们传递给部分(我假设是一个代码块),那么我可以决定将它们放置在哪里以及如何在表单本身中呈现它们,而不是事后才想到。

谢谢。

【问题讨论】:

    标签: ruby codeblocks renderpartial


    【解决方案1】:

    通常我们使用部分将 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。

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多