【问题标题】:Rails - re-using partialRails - 重用部分
【发布时间】:2014-05-30 11:24:17
【问题描述】:

我的视图/用户/index.html.erb 中有以下内容,而不是标准的显示、编辑、删除

    <td>
      <%= link_to user, class: 'btn btn-default' do %>
        <span class="glyphicon glyphicon-search"></span>
      <% end %>
    </td>
    <td>
      <%= link_to edit_user_path(user), class: 'btn btn-default' do %>
        <span class="glyphicon glyphicon-pencil"></span>
      <% end %>
    </td>
    <td>
      <%= link_to user, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger' do %>
        <span class="glyphicon glyphicon-remove"></span>
      <% end %>
    </td>

我怎样才能将此代码重复用于应用程序中的所有其他模型?

【问题讨论】:

  • 使用partials3.4.4 Passing Local Variables

标签: ruby-on-rails twitter-bootstrap ruby-on-rails-4 ruby-on-rails-4.1


【解决方案1】:

创建一个layouts/_toolbox.html.rb 部分并将以下修改后的版本放入其中:

<td>
    <%= link_to my_model, class: 'btn btn-default' do %>
        <span class="glyphicon glyphicon-search">See me</span>
    <% end %>
</td>
<td>
    <%= link_to [:edit, my_model], class: 'btn btn-default' do %>
        <span class="glyphicon glyphicon-pencil">Edit me</span>
    <% end %>
</td>
<td>
    <%= link_to my_model, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger' do %>
        <span class="glyphicon glyphicon-remove">Destroy me</span>
    <% end %>
</td>

然后你可以使用它:

<%= render partial: "layouts/toolbox", locals: {my_model: model_instance} %>

【讨论】:

  • 它给了我一个错误信息:未定义的局部变量或方法`my_model',当我这样使用它时:
  • @EastsideDeveloper 将 {user: u} 替换为 {my_model: u}
  • &lt;%= render "layouts/toolbox", my_model: model_instance %&gt; 就够了,可以省略'partial'和'locals'
  • 删除一个或多个会产生错误信息:undefined local variable or method `my_model'
  • 这很奇怪,不会发生在我身上。
【解决方案2】:

您可以将其移动到部分布局并将变量作为局部变量传递。 请注意,部分名称必须以“_”开头,例如:_actions.html.erb

然后从代码中渲染部分并传递局部变量。

<%= render partial: "actions", locals: {user: @user} %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2011-02-26
    相关资源
    最近更新 更多