Hola a todos!
Les comento que tengo el siguiente problema, estoy intentando hacer un
select_tag en un form (Albums) donde tengo una cantidad de objetos para
seleccionar (Artistas). Cada uno de esos objetos tiene su id y tabla
relacionada,sin embargo puse una de los opciones donde dice “Selecciona
un artista”, por lo tanto no es un “Artista” ni tiene una id “valida”.
Cuando quiero crear un album y dejo seleccionado en la parte de
Artistas la opcion de “Selecciona un artista” me salta un error ya que
"no puede encontrar un artista con esa id ".
No se como validar para que no intente hacer se find cuando tiene el
valor que se le asigna cuando se selecciona la opcion de “selecciona un
artista”.
Dejo el codigo del “new.html.erb” y del controlador. Por favor denme una
mano!
Gracias!!
new.html.erb
New album
<%= error_messages_for :album %>
<% form_for(@album) do |f| %>
Title
<%= f.text_field :title %>
Artist
<%=select_tag('artist_id',options_for_select([["Select One",0]] +
@artist.collect {|art| [art.name,art.id]},@album.artist_id ))%>
Release date
<%= f.datetime_select :release_date %>
Genre
<%= f.text_field :genre %>
Created at
<%= f.datetime_select :created_at %>
Updated at
<%= f.datetime_select :updated_at %>
Feature
<%= f.text_field :feature %>
Image path
<%= f.text_field :image_path %>
<%= f.submit "Create" %>
<% end %><%= link_to ‘Back’, albums_path %>
albums_controller.rb
def create
artist = Artist.find(params[:artist_id])
@album = Album.new(params[:album])
@album.artist = artist
respond_to do |format|
if @album.save
flash[:notice] = 'Album was successfully created.'
format.html { redirect_to(@album) }
format.xml { render :xml => @album, :status => :created,
:location => @album }
else
@artist = Artist.find(:all)
format.html { render :action => "new" }
format.xml { render :xml => @album.errors, :status =>
:unprocessable_entity }
end
end
end