ユーザーが新しいプロジェクトを作成するときに、デフォルトでプロジェクトに属する新しいチーム(1対1)とチームに属する新しい役割(多対1)を作成する必要があるという設定があります。プロジェクトを作成する人が最初の役割に結び付けられることを除いて、すべてが期待どおりに機能します。
したがって、ロールには2つの外部キー(team_idとuser_id)があります。team_idのようにuser_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が機能している理由がわかりませんが、この他の行は機能していません。