2011-07-16 28 views
13

Tôi đã tìm kiếm stackoverflow trong gần 2 giờ qua các câu hỏi tương tự nhưng câu trả lời dường như không hoạt động.Cách đặt "đã chọn" trong select_tag/options_from_collection_for_select

Tôi có đoạn mã sau:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name") %> 

Tôi muốn hiển thị các tùy chọn Tôi đã chọn trước đó là lựa chọn thay vì đi tới thẻ đầu tiên theo mặc định.

Trong các câu hỏi khác, họ đã đề xuất thêm các mục sau (không có câu hỏi nào trong số đó hoạt động).

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", "1") %> 

Hoặc:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @models.first.id) %> 

ps. Tôi đang sử dụng Rails 3.1.RC4

+0

Đây có phải là một hình thức hoặc độc lập không? – s84

+0

Đó là một lựa chọn độc lập – imjp

Trả lời

26

Giả sử rằng ngoài việc @models của bạn, trong đó có danh sách đầy đủ, bạn cũng có @model trong đó có kỷ lục hiện tại, sau đó bạn có thể làm như sau:

<%= 
    select_tag "name_dropdown", 
    options_from_collection_for_select(@models, "friendly_id", "name", @model.id) 
%> 

Về cơ bản , tham số thứ tư là options_from_collection_for_select(...) phải chứa id của mục bạn muốn được chọn. Mẫu mã thứ hai của bạn buộc id được chọn là 1 mỗi lần và mẫu thứ ba bạn đăng luôn làm cho mục đầu tiên được chọn trong @models, bất kể mô hình hiện được chọn thực tế.

+2

Cảm ơn người đàn ông, tôi đã sửa nó bằng cách đặt '@ model.friendly_id' thay vì' @ model.id': '<% = select_tag" name_dropdown ", options_from_collection_for_select (@models," friendly_id ", "name", @ model.friendly_id)%> ' – imjp

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