2011-09-19 13 views
6

He los siguientes modelos, miembros y Mapa, establecido como tal:relaciones Has_one y crear un nuevo registro en Rails 3

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

    belongs_to :member 

y mis rutas, estructurado con:

resources :members do 
    resources :maps 
end 

y mi controlador de mapas es:

def new 
     @map = Map.new 
    end 

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

    if @map.save..... 

Pero cuando trato de guardar un nuevo mapa, me sale un error en ese undefined method 'new' crear línea No estoy seguro por qué.

+0

'' current_member.map' devolverá las negativas si el miembro no tiene ninguna mapa, y las negativas 'no tiene un método' new'. Debes hacer lo que dice @Dmitry. – nickgrim

Respuesta

10

Here es una descripción de todos los métodos añadidos por la asociación has_one. Debería usar build_map para construir un nuevo mapa.

Cuestiones relacionadas