Marcxaba
134 posts
|
Prezados colegas estou fazendo um relacionamento de um cd com suas faixas ( nome e tempo da música)mas está dando um erro. Alguém pode ajudar.? Postando.
Controller Faixas
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @faixas }
end
end
# GET /faixas/1
# GET /faixas/1.xml
def show
@faixa = Faixa.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @faixa }
end
end
# GET /faixas/new
# GET /faixas/new.xml
def new
@faixa = Faixa.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @faixa }
end
end
# GET /faixas/1/edit
def edit
@faixa = Faixa.find(params[:id])
end
# POST /faixas
# POST /faixas.xml
def create
@faixa = Faixa.new(params[:faixa])
respond_to do |format|
if @faixa.save
flash[:notice] = ‘Faixa was successfully created.’
format.html { redirect_to(@faixa) }
format.xml { render :xml => @faixa, :status => :created, :location => @faixa }
else
format.html { render :action => “new” }
format.xml { render :xml => @faixa.errors, :status => :unprocessable_entity }
end
end
end
# PUT /faixas/1
# PUT /faixas/1.xml
def update
@faixa = Faixa.find(params[:id])
respond_to do |format|
if @faixa.update_attributes(params[:faixa])
flash[:notice] = ‘Faixa was successfully updated.’
format.html { redirect_to(@faixa) }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @faixa.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /faixas/1
# DELETE /faixas/1.xml
def destroy
@faixa = Faixa.find(params[:id])
@faixa.destroy
respond_to do |format|
format.html { redirect_to(faixas_url) }
format.xml { head :ok }
end
end
protected
# Carrega os @cds
def load_cds
@cds = Cd.find(:all).collect { |c| [c.titulo, c.id] }
end
end
Show CD.
<% end %>
<%= link_to ‘Edit’, edit_cd_path(@cd) >
<= link_to ‘Back’, cds_path %>
Quando dou um show no cd ele mostra a seguinte mensagem:
Showing cds/show.html.erb where line #50 raised:
undefined method `faixas' for #
Extracted source (around line #50):
47: Gravadora:
48: <%=h @cd.gravadora.nome %>
49:
50: <% unless @cd.faixas.empty? %>
51:
52: Faixas:
53: Obrigado a todos. Esperando ajuda.
|
Clovis
778 posts
|
tenta com
unless @cd.faixas.nil?
..
end
|
Eduardo M
112 posts
|
Marcxaba,
No Model Cd você diz:
has_many :faixa, :dependent => :delete_all
Quando deveria ser no plural, pois creio que sua tabela no banco de dados é “faixas”, plural.
Faça:
has_many :faixas, :dependent => :delete_all
O problema é apenas o relacionamento entre Cd e Faixa(s).
Eduardo M.
|
Marcxaba
134 posts
|
Obrigado mais uma vez Eduardo, com sua ajuda estou conseguindo resolver meus problemas. Aqui como faço para que o nome da faixa fique alinhado com o tempo da faixa.
Exemplo:
Casa – 03:40
Esta ficando um em baixo do outro.
Espero que possa ajudar-me toda vez que precisar.
Grato.
|
Eduardo M
112 posts
|
Marcxaba,
O código RoR que está sendo gerado neste forum me confunde um pouco, pois aparece uns HTML que não sei se foram digitados pelo usuário ou gerados na hora da postagem, mas vamos lá.
Para ficarem na mesma linha apenas coloque-os na mesma linha:
<% cd.faixas.each do |faixa| %>
<%= faixa.nome %> - <%= faixa.tempo %>
Não sei muito, mas com o que eu souber com certeza sempre estarei ajudando.
Eduardo M.
|