我有一个设置,当我用户创建一个新项目时,他们默认必须创建一个属于该项目的新团队(一对一)和一个属于该团队的新角色(多对一)。一切都按预期工作,除了我还希望创建项目的人与第一个角色相关联。
因此,角色有两个外键(team_id 和 user_id)。我似乎无法让 user_id 像 team_id 那样填充。这是代码:
class ProjectsController < ApplicationController
before_filter :signed_in_user, only: [:show, :edit, :update, :destroy]
before_filter :correct_or_admin_user, only: [:edit, :update, :destroy]
def new
@user = current_user
@project = Project.new
@team = @project.build_team
@user.roles.build
@team.roles.build
end
def create
@project = current_user.projects.new(params[:project])
if @project.save
flash[:success] = "Your new project has been created!"
redirect_to @project
else
render 'new'
end
end
“current_user.roles.build”这行有什么问题吗?我不明白为什么@team.roles.build 可以工作,但另一行却不行。