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>

我在rails中制作了很多次表格。我唯一不同的是多态关联,所以我的猜测是问题与此有关?有人有想法么?谢谢。如果有人对此有任何意见,我也觉得我的表演方法可能不正确。

4

1 回答 1

1

使用projectswith s 因为你是 use has_manyproject仅当您说雇主has_one项目时,方法才可用。

请注意,这projects将返回一个项目数组而不是项目对象。

于 2013-11-12T22:06:56.127 回答