Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4资源定制问题_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails 4资源定制问题

Ruby on rails Rails 4资源定制问题,ruby-on-rails,Ruby On Rails,我们有一个标签资源: resources :tags, only: [:index, :show, :update, :destroy] 我正试图复制标签/tag部分的功能: <%= render partial: 'tags/tag', collection: tags %> ## <~ my copy ## <%= render partial: 'collections/collection', collection: collections %> <

我们有一个标签资源:

resources :tags, only: [:index, :show, :update, :destroy]
我正试图复制
标签/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 %>
<% 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
我试图做的是重用相同的部分,只输出名为“Mailbox”的标记。我是否需要向该方法添加一些逻辑以使部分只显示名为“Mailbox”的标记?我如何告诉partial只显示一个“邮箱”标记?如果您有任何建议或帮助,我将不胜感激。我是一名新的Rails开发人员

两种方式

通过本地

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

传递一个仅包含一个标记的数组

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


为true:TrueClass提供
未定义的方法“未读计数”
。感谢您的帮助使用本地版本有效,但集合版本无效。还向normals标记添加了拒绝方法:
tags.reject{| t | t.name==“Mailbox”}