资源在Devise中意味着什么?

时间:2016-11-27 04:49:19

标签: ruby-on-rails ruby devise ruby-on-rails-5

我希望在用户登录时更改设计中发生的事情。当我查看源代码时,字源资源无处不在,但我无法理解它的用途。它只适用于设计和监护人吗?

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

2 个答案:

答案 0 :(得分:6)

资源是用户实例的抽象名称。可以在设计设置中配置它以使用Admin模型或任何其他模式。

默认情况下,它是路线中声明的第一个设计角色

devise :users  # resource is instance of User class
devise :admins # resource is instance of Admin class

答案 1 :(得分:0)

亚历克斯的答案说得很简洁,但鉴于上述评论,每个人都可能不太清楚:

设计的作者意识到,那些使用宝石的人会希望以不同的方式进行定制。有些人会想要打电话给他们的用户:用户,其他人想要打电话给他们:游泳者,高尔夫球手,或总统,视情况而定。 “资源”基本上可以替代应用程序开发人员将来使用的用户名。设计并不关心用户实际被叫什么:无论用什么叫做设计,你的用户都会被称为“资源”。如果它是以任何其他方式,那么gem的作者将不得不强迫应用程序开发人员调用他们的用户:管理员或管理员 - 这是非常严格的,开发人员不会喜欢这样。