Select Multiplo

1 resposta
alexvingg

Opa, estou com um problema ao usar o select multiplo ao editar alguma tela minha.
Se eu desmarcar todos os campos do select multiplo e mandar salvar ele não altera nada
fica parecendo que não fiz nada. Agora se eu deixar um selecionado ele faz as alterações corretamentes.
Para resolver isso eu fiz um procedimento que não axei certo que foi verificar no controller se ele vem blank e ai
setar ele com um valor.

ex:

if params[:projeto][:analistas].blank params[:projeto][:analistas] = "" end

Com isso ele faz tudo certinho. Eu verifiquei e percebi se ele não mandar o objeto do select pro controller ele
não altera nada deixa tudo como está.

1 Resposta

ricardo.valeriano

Como vai alexvingg?

Prá ter certeza do problema que você está enfrentando, seria melhor você descrever o relacionamento entre os seus models.
Em todo o caso, você pode construir um select múltiplo da seguinte forma:

<%= collection_select(:[seu_model_que_has_many], :[model_que_belongs]_ids,
    @lista_de_models_que_belongs_to, :id, :[propriedade],
    {:selected => @model_que_has_many.[model_que_belongs]_ids},
    :multiple => true) %>

Para um exemplo menos abstrato, considere o seguinte modelo:

class Restaurante < ActiveRecord::Base
  has_many :pratos
end

class Prato < ActiveRecord::Base
  belongs_to :restaurante
end

Nesse modelo seu select múltiplo seria:

<%= collection_select(:restaurante, :prato_ids, Prato.all,
     :id, :nome,
    {:selected => @restaurante.prato_ids},
    :multiple => true) %>

Sempre lembrando que a busca via ActiveRecord (Prato.all) deveria ter sido feita em outra bandas, chegando para sua view apenas uma variável (@pratos por exemplo).

Criado 12 de agosto de 2011
Ultima resposta 16 de set. de 2011
Respostas 1
Participantes 2