2011-09-03 5 views
1

아래의 코드는 제대로 작동하며 모든 것이 잘 연결됩니다.레일 3 - 연결 도움말

그러나 내가 원하는 것은 아닙니다.

새 작업을 만들 때 작업을 목록과 연결하고 현재 사용자의 user_id를 가져야합니다. 그러나 user_id 필드를 lists 테이블에 추가했습니다. 양식이 user_id를 제출하면 nil입니다.

이 작업을 수행하기 위해 코드를 수정해야하는 방법을 설명해 주시면 매우 감사하겠습니다.

여기 내 현재 설정입니다

...

#routes 

resources :accounts do 
    resources :users do 
     resources :lists do 
     resources :tasks 
     end 
    end 
    end 


#account model 
    has_many :users 

#user model 
    belongs_to :account 
    has_many :lists 
    has_many :tasks, :through => :lists 

#task model 
    belongs_to :list 

#list model 
    belongs_to :user 
    has_many :tasks 
+1

깊은 곳에서 리소스를 중첩하지 않겠습니다. 나중에 라우팅을 변경하려면 많은 컨트롤러와 form_for 변경 등을 야기 할 것입니다. – drummondj

+0

좋아, 이것을 설정하는 다른 방법을 설명해 주시겠습니까? 감사! – jBeas

답변

2

당신은 아마 여전히 둥지리스트와 작업 할 수 있습니다 그리고

resources :accounts 
resources :users 
resources :lists do 
    resources :tasks 
end 

이 tasks_controller에, 예를 들어, 작업을 저장하기 위해 수행

@list = List.find(params[:list_id]) 
@task = @list.tasks.new(params[:task]) 
@task.user = current_user 

현재 로그인 한 사용자를 얻으려면 current_user와 같은 방법이 있다고 가정합니다.

+0

tasks/new.htnl.erb에서 내 양식은 어떻게 생겼을까요? semantic_form_for [@ task.list, @task] 작동하지 않습니다 그리고 그게 내가 정상적으로 어떻게 할 것이라고 – jBeas

+0

당신의 새로운 방법은 task_controller에서 어떻게 보이나요? – drummondj