Rails - 重用部分

时间:2014-05-30 11:24:18

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

而不是标准节目,编辑,删除,我的观点/ users / 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>

如何在应用中的所有其他模型中重复使用此代码?

2 个答案:

答案 0 :(得分:5)

创建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} %>

答案 1 :(得分:0)

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

然后从代码中渲染部分并传递本地。

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