Hello,

I have this problem :

When I use three models, and associate them, then, my 'new' action need more 
data to work, How can I resolv it, or I do it in the right way ?

Thanks

Jose.


******************** my models *************************

class Libro < ActiveRecord::Base
  has_many :lecciones
end

class Leccion < ActiveRecord::Base
  has_many :vocabularios
  belongs_to :libro
end

class Vocabulario < ActiveRecord::Base
  belongs_to :leccion
  belongs_to :libro
end

**************** routes.rb ****************************

ActionController::Routing::Routes.draw do |map|
  map.resources :vocabularios

  map.resources :lecciones
  
  map.resources :libros

  map.resources :libros, :has_many => :lecciones

  map.resources :libros do |libro|
     libro.resources :lecciones do |leccion|
       leccion.resources :vocabularios
     end
  end

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

*************** my controllers *****************************

class VocabulariosController < ApplicationController

  def new
    @libro = Libro.find(params[:libro_id])
    @leccion = @libro.lecciones.find(params[:leccion_id])
    @vocabulario = @leccion.vocabularios.build(params[:vocabulario])

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @vocabulario }
    end
  end

  def create
    @libro = Libro.find(params[:libro_id])
    @leccion = @libro.lecciones.find(params[:leccion_id])
    @vocabulario = @leccion.vocabularios.build(params[:vocabulario])

    # Here '@vocabulario' never have 'libro' and write in the
    # database 'NULL'
    # why it never works ?
  
    # i need to put something like :
    
    # @vocabulario.libro = @libro

    # then the insert in database works fine, WHY ?
    # is this ok ?
  
    if @vocabulario.save
      redirect_to libro_leccion_vocabulario_url(@libro, @leccion, @vocabulario)
    else
      render :action => "new"
    end

  end

end



      

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to