2011-09-03 17 views
1

以下のコードはうまく動作し、すべてがうまく関連しています。rails 3 - associations help

しかし、それは私が望むものではありません。

新しいタスクを作成するときに、タスクをリストに関連付けると同時に、現在のユーザーの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

私はあなたのリソースを深く入れ子にしません。後でルーティングを変更したい場合は、コントローラーやフォームの変更などがたくさんあります。 – 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

関連する問題