2010-07-09 34 views
6

Tôi có một từ như thế này:Làm cách nào để thêm hộp tổ hợp bằng trình trợ giúp RoR?

<% form_for(@user) do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :username %><br /> 
    <%= f.text_field :username %> 
    </p> 
    <p> 
    <%= f.label :email %><br /> 
    <%= f.text_field :email %> 
    </p> 
    <p> 
    <%= f.label :password %><br /> 
    <%= f.password_field :password %> 
    </p>    
<p> 
    <%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %> 
    </p> 
    <p> 
     <%= f.label :role %> <br/> 
     <%= f.text_field :role%> 
    </p> 
    <p> 
    <%= f.submit 'Create' %> 
    </p> 
<% end %>    

Trong cơ sở dữ liệu, vai trò là một "Char" lĩnh vực. Tôi muốn nó khác với một textfield, người dùng có thể chọn "Teacher", "Student", nếu người dùng chọn "Teacher", cơ sở dữ liệu sẽ lưu "T", nếu không, nó sẽ lưu "S". Làm thế nào tôi có thể làm như vậy? Tôi cần thêm bảng "Vai trò người dùng" vào cơ sở dữ liệu, sau đó tạo mối quan hệ với người dùng? Nhưng nó là cần thiết để làm điều đó theo cách này? cảm ơn.

+3

Câu hỏi này đã làm cho nó lên đầu google "đường ray combobox". Trên thực tế, những gì bạn muốn, là "thả xuống" hoặc "chọn", không phải "combobox" (http://stackoverflow.com/questions/2176297/is-there-any-difference-between-drop-down-box-and- combo-box) – mirelon

Trả lời

16

Ref selectoptions_for_select

<%= f.select :role, options_for_select([["Teacher", "t"], ["Student", "s"]]) %> 
+2

Tôi nghĩ rằng bạn có thể có nghĩa là 'f.select' hơn là' f.select_tag', phải không? - bởi vì bạn có thể tạo trình tạo biểu mẫu 'f'. – bjg

+0

@bjg: - yea nhận ra rằng sau này tôi chỉnh sửa câu trả lời của tôi. dù sao Thanx – Salil

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