Tôi muốn viết named scope để nhận bản ghi từ id của nó.Làm thế nào tôi có thể đặt named_scope trong Rails trả lại một giá trị thay vì một mảng?
Ví dụ: tôi có một kiểu gọi là Event
và tôi muốn mô phỏng Event.find(id)
khi sử dụng named_scope
để có tính linh hoạt trong tương lai.
tôi đã sử dụng mã này trong mô hình của tôi:
named_scope :from_id, lambda { |id| {:conditions => ['id= ?', id] } }
và tôi gọi nó từ bộ điều khiển của tôi như Event.from_id(id)
. Nhưng vấn đề của tôi là nó trả về một mảng các đối tượng Event
thay vì chỉ một đối tượng.
Vì vậy, nếu tôi muốn có được tên sự kiện, tôi phải viết
event = Event.from_id(id)
event[0].name
trong khi những gì tôi muốn là
event = Event.from_id(id)
event.name
Tôi có làm điều gì đó sai ở đây?
hi Jimmy Cảm ơn câu trả lời nhanh.Tại sao tôi muốn có một phạm vi được đặt tên là (như tôi đã đề cập trong bình luận của Damien) vì sau này tôi có thể chỉ nhận được các sự kiện hoạt động Vì vậy, tôi chỉ có thể thay đổi phạm vi được đặt tên bằng cách phá vỡ mã hiện có (như chỉ thêm hoạt động = 1) Xin vui lòng cho tôi biết ý kiến của bạn cổ vũ, cùng một – sameera207