2013-03-06 36 views
16

thẻ của tôi:Rails chọn thẻ chọn giá trị

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5], :selected => :option ])) %> 

Làm thế nào để thiết lập giá trị được lựa chọn để mà lựa chọn được chọn. Ví dụ: nếu tôi chọn ['Bought', 3] và gửi, tùy chọn ['All', 1] được chọn. Làm cách nào tôi có thể hiển thị giá trị đã chọn sau khi biểu mẫu được gửi.

+0

Nếu bạn chọn '[ 'Mua', 3]' trong trình duyệt và sau đó gửi, bạn thấy rằng '['Tất cả', 1]' được chọn ở đâu? Bạn có thể hiển thị phần còn lại của biểu mẫu cũng như mã điều khiển có liên quan cho hành động biểu mẫu không? – PinnyM

+0

Các tùy chọn được đóng (']') ở sai vị trí, do đó trình duyệt sẽ thấy ': selected =>: option' là một tùy chọn. Khắc phục sự cố, bạn có thể làm mới trình duyệt và tùy chọn đã chọn sẽ vẫn được chọn. – gabrielhilal

Trả lời

25

Bạn đã làm mọi thứ đúng, chỉ cần đóng các tùy chọn ] trước :selected => :option:

thay vì ...], selected: :option ])), thay đổi để ...]], selected: :option))

Vì vậy, mã của bạn phải là:

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5]], selected: :option)) %> 
+1

Làm cách nào để chỉ định giá trị nào được chọn? – 0112

10

Hãy thử điều này:

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5]], :selected => params[:option])) %> 

này hoạt động hoàn hảo trong đường ray 4.2

1

Trong trường hợp bạn muốn thêm vào một lớp học để tag:

<%= select_tag(:option, options_for_select([["Option 1",1],["Option 2",2],["Option 3",3]], params[:option]), class:"select") %> 

Worrking trong đường ray 5.

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