14

Tôi đang sử dụng acts-as-taggable-on để cho phép các mẫu NewsItem và MediaItem được gắn thẻ. Theo mặc định, truy cập vào thẻ của mô hình bằng cách sử dụng tag_list cho một mảng tên thẻ hoặc trực tiếp thông qua liên kết sử dụng tags để thu thập số ActsAsTaggableOn::Tag s, dẫn đến các thẻ theo thứ tự tùy ý. Tôi muốn chúng luôn được sắp xếp theo thứ tự bảng chữ cái. Không có đề cập trong tài liệu hướng dẫn thiết lập thứ tự mặc định, ngoài cách duy trì thứ tự các thẻ được tạo trong (bằng cách sử dụng acts_as_ordered_taggable trong mô hình).Đặt hàng Thẻ theo thứ tự abc theo mặc định Sử dụng Công thức Như Taggable Trên

Rõ ràng tôi có thể đặt hàng mỗi khi tôi gọi tags sử dụng news_item.tags.order(:name), nhưng tôi muốn đây là hành vi mặc định trong toàn bộ ứng dụng và không muốn sao chép thứ tự ở bất cứ nơi nào tôi cần sử dụng thẻ.

Làm cách nào để thiết lập mô hình của mình để liên kết tags luôn trả về các thẻ theo thứ tự bảng chữ cái?

Trả lời

5

Tôi e rằng loại đặt hàng này không thể được thực hiện trong phiên bản hiện tại của đá quý như hành động-như-taggable-on. Nó là rõ ràng từ source code rằng đá quý này thực sự chỉ hỗ trợ sắp xếp theo ID (bảo tồn thứ tự tạo) hoặc không có trật tự nào cả.

Có một pull request open cho phép sắp xếp theo tên hoặc bất kỳ thuộc tính nào khác nhưng hoạt động phát triển đá quý có vẻ khá cũ ngay bây giờ (yêu cầu kéo đã được mở trong hơn một năm). Có lẽ bạn có thể thử hỏi về trạng thái của yêu cầu kéo này.

Các vấn đề liên quan