Utilizando o Rails form select
26 Jul 2010Pesquisei bastante na internet, até achar uma thread demonstrando como utilizar o form select com um array de objetos.
Geralmente meus selects são populados com arrays do ActiveRecord.
@users = User.all
<% form_for @user, :html => { :method => :post } do |f| %>
<%= f.select :user_id, @users %>
Desta forma o select imprimirá com o to_s de cada objeto do array, para exibir o key (id) e value (descrição), basta utilizar o método collect, que é uma maneira fácil e rápida para esse propósito.
<% form_for @user, :html => { :method => :post } do |f| %>
<%= f.select :user_id, @users.collect { |user| [user.name, user.id] } %>
Outras maneiras para para usar form select
Com um array simples:
<%= f.select :estados, ['SP', 'PA', 'RJ'] %>
Com um array com arrays:
<%= f.select :estados, [['São Paulo', 'SP'], ['Pará', 'PA'], ['Rio de Janeiro', 'RJ']] %>