我是 ruby on rails(和编程)的新手,这可能是一个非常愚蠢的问题。我正在使用 Rails 3.2 并尝试使用acts_as_taggable_on 在文章上生成标签,并将这些标签显示在文章索引上并将页面显示为可点击的链接。
我在文章显示和索引页面上都有可点击的标签,但链接只是返回到索引页面并且不根据标签名称进行排序。我已经在互联网上搜索并从各种来源拼凑了下面的代码,但我显然遗漏了一些东西。
非常感谢任何帮助,因为我已经用尽了我看似有限的知识!谢谢。
这是我所拥有的:
class ArticlesController < ApplicationController
def tagged
@articles = Article.all(:order => 'created_at DESC')
@tags = Article.tag_counts_on(:tags)
@tagged_articles = Article.tagged_with(params[:tags])
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @articles }
end
end
def index
@articles = Article.paginate :page => params[:page], :per_page => 3
@tags = Article.tag_counts_on(:tags)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
end
end
module ArticlesHelper
include ActsAsTaggableOn::TagsHelper
end
class Article < ActiveRecord::Base
acts_as_ordered_taggable
acts_as_ordered_taggable_on :tags, :location, :about
attr_accessible :tag_list
scope :by_join_date, order("created_at DESC")
end
article/index.html.erb
<% tag_cloud(@tags, %w(tag1 tag2 tag3 tag4)) do |tag| %>
<%= link_to tag.name, articles_path(:id => tag.name) %>
<% end %>
article/show.html.erb
<%= raw @article.tags.map { |tag| link_to tag.name, articles_path(:tag_id => tag) }.join(" | ") %>
routes.rb 文件片段
authenticated :user do
root :to => 'home#index'
end
devise_for :users
resources :users, :only => [:show, :index]
resources :images
resources :articles