2013-11-15 45 views
0

我們有一個標籤資源:軌道4的資源定製發出

resources :tags, only: [:index, :show, :update, :destroy] 

而且我試圖複製tags/tag部分的功能:

<%= render partial: 'tags/tag', collection: tags %> ## <~ my copy ## 
<%= render partial: 'collections/collection', collection: collections %> 
<%= render partial: 'saved_searches/saved_search', collection: saved_searches %> 
<%= render partial: 'tags/tag', collection: tags %> 
<%= render feeds %> 

這裏是_tag.html.erb部分:

<% hide_drawer = (session[:view_mode] == 'view_unread' && tag.unread_count == 0 && !tag.user_feeds.any?) ? true : false %> 
<li data-tag-id="<%= tag.id %>" data-feed-id="tag-<%= tag.id %>" class="<%= selected("tag_#{tag.id}") %>"> 
    <%= link_to tag_path(tag.id), remote: true, class: 'feed-link tag-link', data: { behavior: 'selectable reset_entry_position show_entries open_item feed_link', mark_read: {type: 'tag', data: tag.id, message: "Mark #{tag.name} as read?"}.to_json } do %> 
    <span class="favicon-wrap"> 
     <span class="favicon favicon-tag"></span> 
    </span> 
    <%= content_tag :span, tag.unread_count, class: 'count' + hide_count(tag.unread_count) %> 
    <% unless hide_drawer %> 
     <%= render partial: 'tags/tag_visibility', locals: {user: @user, tag: tag} %> 
    <% end %> 
    <%= tag.name %> 
    <% end %> 
    <div class="drawer <%= hide_drawer ? ' hide' : '' %>" data-hidden="<%= drawer_visible?(tag.id) ? 'false' : 'true' %>" style="<%= drawer_visible?(tag.id) ? '' : 'height: 0;' %>"> 
    <ul> 
     <%= render tag.user_feeds %> 
    </ul> 
    <i class="drawer-arrow"></i> 
    </div> 
</li> 

這裏是展示方法:

def show 
    @user = current_user 
    update_selected_feed!("tag", params[:id]) 

    @tag = Tag.find(params[:id]) 
    @feed_ids = Tagging.where(tag_id: @tag, user_id: @user).pluck(:feed_id) 

    feeds_response 

    @append = !params[:page].nil? 

    @type = 'tag' 
    @data = params[:id] 

    @collection_title = @tag.name 
    @collection_favicon = 'favicon-tag' 

    respond_to do |format| 
     format.js { render partial: 'shared/entries' } 
    end 
    end 

我想要做的是重複使用相同的部分,只輸出名爲「郵箱」的標籤。我是否需要在該方法中添加一些邏輯以使局部只顯示名爲「郵箱」的標籤?我如何告訴部分只顯示一個「郵箱」標籤?任何建議或幫助,將不勝感激我是一個新的Rails開發人員。

回答

1

兩種方式。

通過本地

<%= render partial: 'tags/tag', locals: {tag: tags.find{|t| t.name == "Mailbox"}}%> 

傳配合纔剛剛一個標籤數組

<%= render partial: 'tags/tag', collection: tags.collect{|t| t.name == "Mailbox"} %> 
+0

提供真正的'未定義的方法 'UNREAD_COUNT':TrueClass'。感謝您的幫助 – tmartin314

+0

使用本地版本的工作,但收集一個沒有。還將拒絕方法添加到法線標記:'tags.reject {| t | t.name ==「郵箱」}' – tmartin314