たとえば、それぞれ s、 s、およびs によってs、s 、およびその他の sUser
に関連付けられている s があるとします。Group
Event
User
Membership
Rsvp
Friendship
オブジェクトのインスタンスを機能名/リレーショナル名 ("member"、"rsvp"、"friend") で参照する場所と、オブジェクトのインスタンスをクラス名 ("users") で参照する場所はどこですか? つまり、いつUser
「ユーザー」で、いつUser
「メンバー」ですか?
Modelではどれを使用しますか? (この例では group.rb)
has_many :members, through: :memberships, source: :user
# vs.
has_many :users, through: :memberships
Controllerでどちらを使用しますか? (この例では groups_controller.rb)
@members = @group.members # or @group.users, depending on the model
# vs.
@users = @group.users
Viewでどちらを使用しますか? (この例では groups/show.html.haml)
- @members.each do |member| # or @users.each, depending on the controller
= "This is a member named #{member.name}"
-# vs.
- @users.each do |user|
= "This is a member named #{user.name}"
機能名/関係名を使用した方が読みやすいように見えますが、クラス名を使用すると覚えやすくなります。この種のことのための完全で論理的な規則を見つけた(または発明した!)人はいますか?
編集:
- 「覚えやすくリファクタリングしやすい」を「覚えやすい」に変更