我希望在用户登录时更改设计中发生的事情。当我查看源代码时,字源资源无处不在,但我无法理解它的用途。它只适用于设计和监护人吗?
def after_sign_in_path_for(resource)
stored_location_for(resource) ||
if resource.is_a?(User) && resource.can_publish?
publisher_url
else
super
end
end
答案 0 :(得分:6)
资源是用户实例的抽象名称。可以在设计设置中配置它以使用Admin模型或任何其他模式。
默认情况下,它是路线中声明的第一个设计角色
devise :users # resource is instance of User class
devise :admins # resource is instance of Admin class
答案 1 :(得分:0)
亚历克斯的答案说得很简洁,但鉴于上述评论,每个人都可能不太清楚:
设计的作者意识到,那些使用宝石的人会希望以不同的方式进行定制。有些人会想要打电话给他们的用户:用户,其他人想要打电话给他们:游泳者,高尔夫球手,或总统,视情况而定。 “资源”基本上可以替代应用程序开发人员将来使用的用户名。设计并不关心用户实际被叫什么:无论用什么叫做设计,你的用户都会被称为“资源”。如果它是以任何其他方式,那么gem的作者将不得不强迫应用程序开发人员调用他们的用户:管理员或管理员 - 这是非常严格的,开发人员不会喜欢这样。