2011-09-19 89 views
6

我有以下的车型,会员和地图,设置为这样:HAS_ONE关系,并创造了Rails的一个新纪录3

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

    belongs_to :member 

和我的路由设置了:

resources :members do 
    resources :maps 
end 

和我的地图控制器:

def new 
     @map = Map.new 
    end 

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

    if @map.save..... 

但是,当我尝试保存一个新的地图,我对得到一个错误undefined method 'new'创建线。我不知道为什么。

+0

如果成员没有Map,'current_member.map'将返回'nil','nil'没有'new'方法。你需要做@德米特里说的。 – nickgrim

回答

10

Here是由has_one关联添加的所有方法的描述。您应该使用build_map来构建新地图。