【问题标题】:Rails 3 tagging problems, acts_as_taggable_onRails 3 标记问题,acts_as_taggable_on
【发布时间】:2010-10-26 13:11:41
【问题描述】:

我正在使用acts_as_taggable_on 为帖子添加标签,其他标签插件/宝石不适用于rails 3。我可以在帖子模型上编辑/显示标签,标签控制器显示按名称标记的帖子,即/tags /后标签名称/。 我想要的功能是将帖子页面上的标签转换为链接以显示具有相同标签的其他帖子。 我按照使用acts_as_taggable_on_steroids的sitepoints'simply rails 2'中的教程进行操作,但遇到以下错误;

ActionView::MissingTemplate in Posts#show 
Missing partial acts_as_taggable_on/tags/tag with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "../app/views"

Extracted source (around line #28):

25:  <div id="tags">
26:  <% unless @post.tag_list.empty? %>
27:  <p class="tags">
28:  <%= render :partial => @post.tags %></p>
29:  <% end %>

...

class Post < ActiveRecord::Base
  ...
  acts_as_taggable_on :tags
end



class TagsController < ApplicationController
      def show
        @post = Post.tagged_with(params[:id])
      end
end

_tag.html.erb

<%= link_to, tag_path(:id => tag.name) %>

posts/show.html.erb

<div id="tags">
 <% unless @post.tag_list.empty? %>
 <p class="tags">
 <%= render :partial => @post.tags %></p>
 <% end %>
 </div>

还尝试在 tags/index.html 处添加标签云,如此处所述http://github.com/mbleigh/acts-as-taggable-on 给了我一个路由错误;

No route matches {:action=>"tag", :id=>"news", :controller=>"tags"}

【问题讨论】:

    标签: ruby-on-rails acts-as-taggable acts-as-taggable-on


    【解决方案1】:

    看起来您想使用 :collection,它将使用模板呈现整个列表:

    <div id="tags">
      <% unless @post.tag_list.empty? %>
        <p class="tags">
          <%= render :partial => 'tag', :collection => @post.tags %>
        </p>
      <% end %>
    </div>
    

    【讨论】:

    • SyntaxError in Posts#show Showing ../app/views/tags/_tag.html.erb where line #1 raise: ../app/views/tags/_tag.html.erb:1 : 语法错误,意外的 ')',需要 tCOLON2 或 '[' 或 '.' ...to, tag_path(:id => tag.name) );@output_buffer.to_s ... ^ ../app/views/tags/_tag.html.erb:2: 语法错误,意外的keyword_ensure,期待' )' ..app/views/tags/_tag.html.erb:4: 语法错误,意外的keyword_end,期待')' 提取的源代码(在#1 附近):1: tag.name) %>
    • 您的 link_to 错误,您没有链接到任何内容。需要是: tag.name) %>
    • 谢谢,忽略了一件愚蠢的事情,但我仍然有标签云错误
    • 他们在acts_as_taggable_on 主页上显示的代码并不完整。它假设您正在为云编写“标记”方法。如果,例如您刚刚从示例链接中删除了“标记”操作,例如: tag.name }, :class=> css_class %> 然后它将链接到 #show 操作当前页面并且应该可以工作(在#show 视图上)。但是你可能有一个更深层次的问题,因为 Post.tagged_with(:id) 返回的是一个集合,而不是一个 Post。
    • 这给了我指向“tags?id=news”的链接,而不是“tags/news”我想 css_class), tag_path(:id => tag.name)%> 应该可以工作,但不能...
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 2011-07-02
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多