Nếu bạn nghĩ rằng điều kiện được sử dụng trong tất cả các câu trả lời này cho đến nay là không chính xác, thay vào đó bạn có thể kiểm tra xem từ đó đã được số nhiều chưa.
Vì vậy, sử dụng giải pháp Jamie Flournoy như một ví dụ, bạn có thể sử dụng self == self.pluralize
thay vì 's' == self[-1, 1]
, và nhận được những kết quả này:
"Steelers".possessive # Steelers'
"Ross".possessive # Ross's
"Chris".possessive # Chris' before inflections.rb change, Chris's after
"Ross".pluralize
đã là "Rosses", vì nó có thể được dự kiến. Nhưng "Chris".pluralize
không phải là, vì vậy bạn sẽ phải thêm inflection.irregular "Chris", "Chrises"
vào inflections.rb để biểu mẫu sở hữu hiển thị chính xác. Và tôi cho rằng bạn có thể phải liên tục thêm bất thường cho các từ/tên không phổ biến khác để kết thúc có các hình thức sở hữu phù hợp.
Một lần nữa điều này là nếu bạn tin tưởng rằng không đủ để kiểm tra xem chữ cái cuối của chuỗi là s.
Tên của người dùng được lưu trữ ở đâu? Bạn có nghĩa là nó là tên lớp? – txwikinger
Trông giống như một giải pháp tối giản ở đây: http://gist.github.com/474384 – Benson