2009-02-03 42 views
8

Tôi có trường hợp cần sử dụng số nhiều để đánh vần đúng cách. Tuy nhiên, tôi cần phải làm cho html như sau:Đã định dạng số nhiều

<span>1</span> thing 

hay,

<span>3</span> things 

tôi có thể viết một phương pháp helper, nhưng tôi chỉ cần đảm bảo không có một cái gì đó trong hộp làm cái này.

+1

Trong khi tôi đã tự lo về loại điều này trong quá khứ, tôi đã tin rằng đa nguyên nhạy cảm theo ngữ cảnh bị giết. Trừ khi bạn đang tạo ra văn xuôi, tôi thấy "1 điều" hoặc "1 điều" hoàn toàn có thể chấp nhận được. –

+1

Chú ý đến các vấn đề chi tiết. –

Trả lời

4

Trong thời gian chuyển tiếp, tôi đã tạo ra phương pháp helper này, bởi vì nó trông giống như không có gì tôi đang tìm kiếm:

def pluralize_word(count, singular, plural = nil) 
    ((count == 1 || count == '1') ? singular : (plural || singular.pluralize)) 
end 

Đó là cơ bản giống với phương pháp pluralize, ngoại trừ rằng nó loại bỏ số từ phía trước. Điều này cho phép tôi thực hiện việc này (haml):

%span.label= things.size.to_s 
%description= pluralize_word(things.size, 'thing') 
6

Điều này sử dụng lớp Rails TextHelper sử dụng Inflector để thực hiện số nhiều nếu cần.

def pluralize_with_html(count, word) 
    "<span>#{count}</span> #{TextHelper.pluralize(count, word)}" 
end 
+0

Điều này chắc chắn hoạt động dựa trên những gì tôi yêu cầu, nhưng tôi nghĩ rằng phương pháp trợ giúp tôi đăng cho linh hoạt hơn cho nhà thiết kế nói chung. Cảm ơn! –

+0

Tôi sẽ phải gọi YAGNI trên nhận xét đó và nói để refactor nếu bạn tìm thấy một sử dụng khác. – Lolindrath

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