Rails - 重用部分

Eas*_*per 0 ruby-on-rails twitter-bootstrap ruby-on-rails-4 ruby-on-rails-4.1

而不是标准的显示,编辑,删除,我在views/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>
Run Code Online (Sandbox Code Playgroud)

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

Tam*_*ash 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>
Run Code Online (Sandbox Code Playgroud)

然后你可以用它:

<%= render partial: "layouts/toolbox", locals: {my_model: model_instance} %>
Run Code Online (Sandbox Code Playgroud)