我有两个模型:用户和雇主。用户有一个雇主。我正在使用专家授权。使用has_one关系,我如何授权新的和创建操作?理想情况下,如果用户已提交表单,则用户甚至无法访问该表单。
我可以在控制器中执行此操作:
def new
unless current_user.employer.present?
@employer = Employer.new
else
flash[:error] = "Record already exists"
redirect_back(fallback_location: current_user)
end
end
但我更愿意做专家。
class EmployerPolicy < ApplicationPolicy
def create?
# Do I check is the @user has an employer before submission?
end
def new?
# Or do I check if the @user has a record before they get here?
end
end
任何见解都将受到赞赏。谢谢。
答案 0 :(得分:1)
我最终解决了这个没有专家的问题。
在User
模型中,我在create上构建了默认关联和子项(Employer
)。然后在雇主的资源下的routes.rb
我排除创建和新。