Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pablo Honey

Problema ao usar f.collection_select

Recommended Posts

Boa tarde, estou tentando usar o f.collection para chamar uma chave estrangeira porém está dando erro. Teria a possibilidade de alguém me informar como posso salvar esses dados da chave estrangeira.

Tenho dois modelos: categoria e anuncio.

 

create_table :categoria do|t|  
t.string :nome_categoria  
t.timestamps  
end  

e o anuncio

create_table :anuncios do|t|  
t.integer :categoria_id //minha chave estrangeira  
t.string :nome_anuncio  
t.text :descricao  
.  
.  
.  
t.timestamps  
end  

 

Meus modelos estão da seguinte forma:

 

class Categorium...  
attr_acessible :nome_categoria  
has_many :anuncios  

e

 

class Anuncio...  
attr_acessible :categoria_id, :contato_fone..  
belongs_to :categorium  

 

Então fui em view – Anuncios _form.html.erb

 

<div class='field'>  
<%= f.label :categoria_id %><br />  
<%= f.collection_select (:categoria_id, categoria.order('categoria'),  
:id, :nome, {:prompt => true})%>  

Sou iniciante e estou perdido quando usar o “categorium” do modelo ou somente categoria, quando rodo a aplicação dá o seguinte erro: We,re sorry, but something went wrong.

 

Desde já muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pablo.

 

Antes de tudo, você possui um ambiente de desenvolvimento? Caso não, recomendo muito que tenha um.

Esta mensagem de erro, por padrão, aparece apenas em ambientes de produção.. Em ambientes de desenvolvimento você verá mensagens mais detalhadas.

 

 

Outra dúvida, se sua tabela se chama categoria, por que seu model se chama Categorium?

Se está utilizando RoR lembre-se do convention over configuration. Mude isto e use o mesmo nome para os dois.

 

Já sobre o seu problema, acho que está passando os parametros errados.

 

Supondo que mudou o nome de seu model para Categoria, tente utilizar:

 


<%= f.collection_select (:categoria, :gategoria_id, Categoria.order('categoria'),  :id, :nome, :prompt => true)%>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.