2011-09-19 10 views
6
aşağıdaki modelleri, Üye ve Harita, böylece kurdunuz

:Has_one ilişkileri ve Rails yeni bir kayıt oluşturmak 3

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

    belongs_to :member 

ve benim yolları ile ayarlanır:

resources :members do 
    resources :maps 
end 

def new 
     @map = Map.new 
    end 

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

    if @map.save..... 

Ama yeni bir harita kaydetmeye çalıştığımda, bu konuda bir hata undefined method 'new' olsun: ve benim harita denetleyicisi olan çizgi oluştur. Neden olduğundan emin değilim.

+0

"Geçerli_member.map", üyenin Haritası yoksa ve 'nil'' 'new' yöntemine sahip değilse' nil' döndürecektir. @Dmitry'nin söylediklerini yapmalısın. – nickgrim

cevap

10

Here, has_one ilişkilendirmesinin eklediği tüm yöntemlerin bir tanımıdır. Yeni bir harita oluşturmak için build_map kullanmalısınız.