rails 3 - 协会帮助

时间:2011-09-03 02:15:17

标签: ruby-on-rails ruby-on-rails-3

下面的代码工作正常,一切都很好。

然而,这不是我想要的。

当我创建一个新任务时,我希望该任务与列表相关联,而且我还要拥有当前用户的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

1 个答案:

答案 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来获取当前登录的用户。