我有一个带有类型列的用户模型(我相信这称为多态关联)。用户可以是以下两种类型之一:员工或雇主。雇主可以发布项目。所以项目属于雇主和雇主有很多项目。我的项目控制器中有以下代码:
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方法可能不正确。
答案 0 :(得分:1)
使用projects
,因为您使用的是has_many
。 project
方法只有在您说过雇主has_one
项目时才可用。
请注意,projects
将返回项目数组而不是项目对象。