2013-08-08 38 views
5

Về cơ bản tôi muốn thêm khả năng bỏ phiếu cho thẻ, vì vậy tôi muốn có cột ưu tiên cho từng thẻ của mô hình khác nhau.Thêm cột mới vào thẻ actions_as_taggable_on

Bất kỳ ý tưởng nào về cách thực hiện việc này?

Tôi nghi ngờ tôi cần tạo một di chuyển mới, nhưng tôi không biết phải làm gì. Di cư sẽ là gì?

Cảm ơn!

Trả lời

4

Như tôi nhớ, acts_as_taggable tạo ra một bảng gọi là tags, vì vậy bạn thêm một trường để bàn rằng:

rails g migration add_votes_to_tag votes:integer 

và thêm logic của bạn để bỏ phiếu trên thẻ.

P.S. Không chắc chắn nếu tôi hiểu chính xác câu hỏi của bạn.

+0

Đó là những gì tôi đã suy nghĩ, nhưng là bảng khác mà nó tạo ra không phải là một trong đó thực sự liên kết các thẻ đến một mô hình khác nhau? Tôi chỉ không biết cái nào thực sự để thêm cột vào. – bahudso

+0

có, có một bảng liên kết Thẻ với các mô hình của bạn, nhưng bạn không đặt xếp hạng cho Thẻ trong bảng đó, bảng đó chỉ là tạo mối quan hệ. Nếu bạn muốn xếp hạng các thẻ của mình, bạn cần phải thêm phiếu để gắn thẻ cho bảng – rmagnum2002

+0

hoặc mô tả thêm những gì bạn muốn làm, có thể là tôi đã sai tất cả. – rmagnum2002

0

Nếu bạn muốn gia hạn sử dụng thường xuyên lớp thẻ, có vẻ như vậy và tạo trường hợp đặc biệt cho các thẻ cần được tính, bạn có thể dựa vào phương pháp móc từ lõi có tên [find_or_create_tags_from_list_with_context][1]

class Company < ActiveRecord::Base 
    acts_as_taggable_on :markets, :locations 

    def find_or_create_tags_from_list_with_context(tag_list, context) 
     if context.to_sym == :markets 
      MarketTag.find_or_create_all_with_like_by_name(tag_list) 
     else 
      super 
     end 
    end 
end 
Các vấn đề liên quan