如何使用partials改进HTML和ROR中的冗余?

时间:2015-02-20 10:52:28

标签: html ruby-on-rails redundancy

我为Ruby on Rails应用程序编写了这两个部分。是否有任何聪明的方式将两者合并为一个?不允许将一部分复制粘贴到另一部分

我想拥有的是这样的:

@member ='播放器'
渲染'团队/团队_部门'

@member ='员工'
渲染'团队/团队_部门'

或者接受任何其他处理代码冗余的聪明方法。

  1. 
    
    .row  
      .col-md-6.info_block    
            .row  
              .col-md-10.col-md-offset-1  
                = icon 'user'  
                .caption  
                  h3.col-md-6.col-md-offset-3   
                    |Players:  
                  table  
                    tbody  
                      - @team.players.each do |player|  
                        tr  
                          td = icon 'check'  
                          td   
                            |Name:   
                            a href= '#'  
                              = player.name  
                          td   
                            = form_for(@team, url: team_path(@team), method: :delete, html:{class:"team_member_form"}) do |f|  
                              = hidden_field_tag :player, player.id  
                              = f.submit "Delete", class:"btn btn-danger btn-sm", data: { confirm: "Are you sure?" }  
                  button type="button" class="btn btn-success showModal" data-toggle="modal" data-target="#exampleModal" data-member="Player"  
                    |Add Player  
    
    
    

  2.  2。

    
    
    .row
              .col-md-10.col-md-offset-1
                = icon 'user'
                .caption
                  h3.col-md-6.col-md-offset-3 
                    |Staff:
                  table
                    tbody
                      - @team.staff.each do |staff|
                        tr
                          td = icon 'check'
                          td 
                            |Name: 
                            a href= #
                              = staff.name
                          td 
                            = form_for(@team, url: team_path(@team), method: :delete, html:{class:"team_member_form"}) do |f|
                              = hidden_field_tag :staff, staff.id
                              = f.submit "Delete", class:"btn btn-danger btn-sm", data: { confirm: "Are you sure?" }
                  button type="button" class="btn btn-success showModal" data-toggle="modal" data-target="#exampleModal" data-member="Staff"
                    i class="glyphicon glyphicon-plus"
                    |Add Staff
    
    
    

1 个答案:

答案 0 :(得分:0)

以这种方式调用partial,member_type定义成员“staff”或“players”的类型

<%= render "team/team_partial", :locals => {:team => @member, :member_type => @member.type} %>

在视图中

.row
      .col-md-10.col-md-offset-1
        = icon 'user'
        .caption
          h3.col-md-6.col-md-offset-3 
            |#{member_type}:
          table
            tbody
              - @team.#{member_type}.each do |member|
                tr
                  td = icon 'check'
                  td 
                    |Name: 
                    a href= #
                      = member.name
                  td 
                    = form_for(@team, url: team_path(@team), method: :delete, html:{class:"team_member_form"}) do |f|
                      = hidden_field_tag #{member_type}.to_s, member.id
                      = f.submit "Delete", class:"btn btn-danger btn-sm", data: { confirm: "Are you sure?" }
          button type="button" class="btn btn-success showModal" data-toggle="modal" data-target="#exampleModal" data-member= #{member_type}
            i class="glyphicon glyphicon-plus"
            |Add #{member_type}