はじめに
deviseを使っていて、デフォルトで登場する「resource」の意味が分からなかったのですが、調べてみて多少理解が進んだので記述していきます。
devise内部まで理解しているわけではないので、表面的な解釈になります。
間違いがありましたらご指摘ください!
環境
ruby 3.2.1
rails 6.1.7.3
devise 4.9.2
resourceとは
<%= form_for(resource, as: resource_name, url: registration_path(resource_name) do |f| %>
- modelのインスタンス。「user」とすることが多いが、モデル名がuser以外の場合でも対応できるように抽象化している。
-
as:
によってresource_name
がresource
を参照できるようにしている。
そのため、以下の二つは同じURIを意味する。
registration_path(resource_name)
user_registration_path
- どちらの書き方でも動作する。
- 汎用性が高いのは一つ目のURI。
- 具体的でURIが何を示しているのかが分かり易いのは二つ目のURI。
参考