2

タイプ列を持つユーザーモデルがあります(これはポリモーフィックアソシエーションと呼ばれると思います)。ユーザーは、従業員または雇用主の 2 つのタイプのいずれかになります。雇用主はプロジェクトを投稿できます。したがって、プロジェクトは雇用者に属し、雇用者は多くのプロジェクトを持っています。プロジェクトコントローラーに次のコードがあります。

def new
    @project = Project.new
end

def create
    project = current_user.project.build(project_params)
    project.save
    redirect_to project_path(project_params(:id))
end

def show
    @project = Project.find(params(:id))
end

private

def project_params
  params.require(:project).permit(:title, :category, :location, :budget, :description)
end

問題は、ブラウザで新しいフォームを送信しようとすると、次のように表示されることです。

undefined method `project' for #<Employer:0x007ffd85cf3250>

私は何度もレールでフォームを作りました。私が別の方法で行っているのは多形的な関連付けだけなので、問題はそれと関係があると思いますか? 誰にもアイデアはありますか?ありがとう。また、誰かがコメントした場合、私の show メソッドが間違っている可能性があると感じています。

4

1 に答える 1