2012-09-27 38 views
6

Tôi đang sử dụng ActiveRecord với Rails 3.Làm cách nào để có được tất cả danh sách phạm vi trong ActiveRecord 3.x

Tôi đã xác định phạm vi trong mô hình của mình. Làm thế nào tôi có thể nhận được danh sách tất cả các phạm vi của mô hình đó?

Trước đây tôi có thể sử dụng Model.scopes

HOẶC Tôi có thể kiểm tra một phạm vi được định nghĩa hay không? Một cái gì đó như Model.scope_defined?("scope_name")

Cảm ơn bạn trước.

Trả lời

3

Bạn có thể thấy nếu một phạm vi được xác định hoặc không theo cách này

Model.send(:valid_scope_name?, :scope_name) 

nó sẽ trở lại true nếu nó tồn tại và nil nếu nó không.

Nếu bạn kiểm tra mã nguồn của valid_scope_name?, bạn thấy rằng bạn chỉ có thể kiểm tra nó bằng cách sử dụng respond_to? và sau đó tránh phần ghi nhật ký.

Model.respond_to?(scope_name, true) 
+0

Không. Không có phương pháp 'phạm vi' trong AR 3.x – Sayuj

+0

Xin lỗi, tôi đã chỉnh sửa câu trả lời của mình. – oldergod

+1

Cảm ơn! Được. nhưng respond_to? không kiểm tra xem đó là một 'phạm vi' hay thuộc tính của Mô hình. Nếu tôi có 'some_attribute' trong Model của tôi. Nó cho 'true'. Tôi chỉ muốn kiểm tra phạm vi. Hy vọng bạn có mối quan tâm của tôi. – Sayuj

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