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á.
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:
[code]class Restaurante < ActiveRecord::Base
has_many :pratos
end
class Prato < ActiveRecord::Base
belongs_to :restaurante
end[/code]
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).