2012-06-28 3 views

Trả lời

0

Phương thức options_for_select thực hiện những gì bạn muốn, nhưng chỉ khi bạn có thể gieo hạt giống với dữ liệu chính xác. Điều này có nghĩa là bạn cần một mảng với các giá trị thích hợp trong đó. Ví dụ:

options_for_select((0..28).to_a.collect { |v| v.to_f/2 + 1 }) 
15
select_tag "sizes", options_for_select((4..15).step(0.5)) 

Đây là cách tôi đã viết nó ... nhưng đây là cách tốt nhất để tiếp cận?

cũng vậy, nếu tôi muốn 4.0/5.0/6.0 vv để đọc 4/5/6 dưới dạng số nguyên, có cách nào để thực hiện/bao gồm điều này trên một dòng không?

+1

Bạn có thể ánh xạ giá trị và chuyển đổi chúng từ phao sang fixnums nếu chúng là số nguyên: '(4..15) .step (0.5) .map {| n | n% 1 == 0? n.to_i: n} ' –

+0

Thực ra có vẻ như @DerekHall đã gợi ý điều đó. –

2
select_tag "sizes", options_for_select((4..15).step(0.5).map{|n| n%1 == 0 ? n.to_i : n})