2011-09-19 4 views
6
나는 다음과 같은 모델, 회원 및지도, 수 있도록 설정 한

:Has_one 관계와 레일에 새 레코드를 만드는 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'를 얻을 : 내지도 컨트롤러입니다 선을 만드십시오. 왜 확실하지 않은 Im.

+0

'current_member.map'은 멤버에 Map이 없으면'nil'을 반환하고,'nil'에는'new' 메소드가 없습니다. @ 드미트리가 말한 것을 할 필요가있다. – nickgrim

답변

10

Here은 (는) has_one의 모든 연결 방법에 대한 설명입니다. 새지도를 만들려면 build_map을 사용해야합니다.

관련 문제