2013-08-07 39 views
14

Đó là mã của tôi:Làm thế nào để làm cho đường ray f.select chọn

<%= f.select :area, options_for_select([['a','a'],['b','b'],['c','c']]), {}, {:class => 'span3 controls controls-row'}, :selected => params[:area] %> 

và kết quả là:

ArgumentError in Users#edit 
Showing /home/airson/rails_projects/friends_of_local/app/views/users/edit.html.erb where line #17 raised: 
wrong number of arguments (5 for 4) 

tại sao ..... @@?

+0

Bạn có thể dán toàn bộ mẫu edit.html.erb không? –

Trả lời

24

Không cần phải sử dụng :selected chỉ cần vượt qua của bạn params[:area] một mình để options_for_select như một cuộc tranh luận thứ hai:

<%= f.select :area, 
    options_for_select([['a','a'],['b','b'],['c','c']], params[:area]), 
    {}, { :class => 'span3 controls controls-row' } %> 

Giá trị cuối cùng trong số params[:area] của bạn sẽ được chọn.

Hy vọng điều đó sẽ hữu ích;)

9

Bạn nên vượt qua :selected tùy chọn để options_for_select phương pháp, như thế này:

<%= f.select :area, options_for_select([['a','a'],['b','b'],['c','c']], :selected => params[:area]), {}, { :class => 'span3 controls controls-row' } %>