Acts As Taggable On Steroids 정의 탭 사용 하기

최근 rails blog 애플 리 케 이 션 (Simplelog) 을 다운로드 하고 그 안에 있 는 actsas_taggable plugin 은 Acts As Taggable On Steroids 로 바 뀌 었 습 니 다. rails 2.0 에서 항상 오류 가 발생 하기 때 문 입 니 다.
1. 설치

ruby script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids

2. 데이터 만 들 기
마 이 그 레이 션 생 성:

ruby script/generate acts_as_taggable_migration

데이터 생 성:

rake db:migrate

3. 적용:
Post Model 이 있다 면 acts 를 추가 합 니 다.as_taggable 에서 Post 안 으로:

class Post < ActiveRecord::Base
  acts_as_taggable
  ......
end

acts 사용as_taggable 에서 제공 하 는 방법 (tag list, tag list =):

p = Post.find(:first)
p.tag_list # []
p.tag_list = "hebe, selina"
p.save
p.tag_list # ["hebe", "selina"]

또는:

p.tag_list.add("selina", "hebe")
p.tag_list.remove("ella")

4. 태그 대상 찾기

Post.find_tagged_with('Hebe, Selina')

find_tagged_with 기본 값 으로 주어진 탭 을 찾 습 니 다. 지정 한 탭 을 찾 으 려 면 다음 을 사용 하 십시오.

Post.find_tagged_with('Hebe, Selina', :match_all => true)

5. 태그 가 져 오기
왜냐하면 저희 가 acts 를 지 정 했 거 든 요.as_taggable 에서 Post mdel 까지 다음 문 구 를 통 해 모든 Post 라벨 을 얻 을 수 있 습 니 다.

Post.tag_counts

사용자 의 모든 Post 탭 을 지정 하려 면:

User.find(:first).posts.tag_counts #User Post     

Acts As Taggable On Steroids 는 Tags Helper 도 제공 합 니 다.
우선 Application Helper 에 Tags Helper 를 포함 합 니 다.

module ApplicationHelper
  include TagsHelper
end

그리고 컨트롤 러:

class PostController < ApplicationController
  def tag_cloud
    @tags = Post.tag_counts
  end
end

and than View:

<% tag_cloud @tags, %w(css1 css2 css3 css4) do |tag, css_class| %>
    <%= link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class %>
  <% end %>

6. 라벨 캐 싱
태그 caching 을 사용 하면 요청 의 실행 효율 을 높 일 수 있 습 니 다. 태그 caching 을 사용 하려 면 cached 라 는 이름 을 추가 해 야 합 니 다.tag_list 의 필드 이 며, 기본 값 은 빈 문자 가 아 닌 null 입 니 다.

class CachePostTagList < ActiveRecord::Migration
  def self.up
    add_column :posts, :cached_tag_list, :string
  end
end

class Post < ActiveRecord::Base
  acts_as_taggable

  #       : cached_tag_list,        :
  set_cached_tag_list_column_name "my_caching_column_name"
end

메모: tag 를 만 들 거나 연 결 된 Post 에 tag 를 추가 하면 caching 의 탭 은 업데이트 되 지 않 습 니 다.
save 호출 해 야 합 니 다.cached_tag_list 방법.

좋은 웹페이지 즐겨찾기