下面的代码工作正常,一切都很好。
然而,这不是我想要的。
当我创建一个新任务时,我希望该任务与列表相关联,而且我还要拥有当前用户的user_id。我已将user_id字段添加到列表中,但是当表单提交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
答案 0 :(得分: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来获取当前登录的用户。