2011-09-19 10 views
6

ho i seguenti modelli, membro e Map, costituita in modo da:relazioni has_one e la creazione di un nuovo record in Rails 3

class Member < ActiveRecord::Base 
    ... 
    has_one :map, :dependent => :destroy 
    ... 
class Map < ActiveRecord::Base 

    belongs_to :member 

e le mie vie sono istituiti con:

resources :members do 
    resources :maps 
end 

e il mio controller mappe è:

def new 
     @map = Map.new 
    end 

    def create 
    @map = current_member.map.new(params[:map]) 

    if @map.save..... 

Ma quando cerco di salvare una nuova mappa, ottengo un errore su quel undefined method 'new' creare una linea. Non sono sicuro del perché.

+0

'current_member.map' restituirà' nil' se il membro non ha Map e 'nil' non ha un metodo' new'. Devi fare ciò che dice @Dmitry. – nickgrim

risposta

10

Here è una descrizione di tutti i metodi aggiunti dall'associazione has_one. Dovresti usare build_map per costruire una nuova mappa.

Problemi correlati