Eu tinha visto esse episódio e achei um tanto complexo essa solução,
acabei resolvendo desse jeito:
def listType
@productId = params[:value]
@selectId = params[:id]
@prodType = ProductType.find(:all, :conditions => ['product_id
= ?', @productId], :order => 'name')
render :update do |page|
page << "for(var i = document.getElementById('type_"+@selectId
+"').options.length; i > -1 ; i--){"
page << "document.getElementById('type_"+@selectId+"').remove
(i);"
page << "}"
@prodType.each do |p|
page << "var o = document.createElement('option');"
page << "o.text =" + "'" + p.name.to_s + "'"
page << "o.value =" + "'" + p.id.to_s + "'"
page << "document.getElementById('type_"+@selectId
+"').options.add(o);"
end
end
end
Ou seja, inclui uma rotina pequena que tinha em js dentro do código do
rails, funcionou perfeito.
se alguém tiver outra forma, pode falar.
[]'s
On Nov 12, 10:39 pm, Diego Lucena <diegojluc...@gmail.com> wrote:
> Hum, se eu entendi bem parece-me o caso classico de select dinamico, como os
> de país > estado , ou estado -> cidade.
> Sugiro que de uma olhada no episodio 88 do
> railscast<http://railscasts.com/episodes/88-dynamic-select-menus> que
> encina justamente fazer isso, porém eu acrescentaria algum gif de progresso
> dizendo que o segundo select esta sendo carregado.
> espero ter ajudado.
> att.
> Diego
> 2009/11/12 sidneivl <sidne...@gmail.com>
> > Fala galera
> > Estou fazendo um formulário meio complexo aqui e agora me deparei com
> > uma dúvida.
> > tenho uma parte do formulário onde tenho um campo select com os tipos
> > de produtos e um campo select com os produtos
> > conforme seleciono um tipo do produto o campo de produtos tem que ser
> > "populado" com os dados que vem da base conforme o que selecionei em
> > tipos, coisa simples
> > a parte de pegar o id do tipo está certo, faço um remote_function em
> > onchange do campo de tipo e com o id faço um select com dos produtos.
> > agora preciso colocar meu retorno no campo select dos produtos, mas
> > procurei aqui na lista e por ai um jeito fácil de fazer isso mas não
> > achei...achei 2, um que usa javascript, meio complexo e outro que
> > substitui o campo do form que achei um pouco pedreiro, hehehe
> > não existe algo como
> > page[idDoCampo] << objeto
> > ou
> > page[idDoCampo].objeto = objeto?
> > valeu galera