例如,假设我们有User
s,它们分别通过s、s 和s 与Group
s、Event
s 和其他s 相关。User
Membership
Rsvp
Friendship
我们应该在哪里通过函数/关系名称(“member”、“rsvp”、“friend”)引用对象实例,在哪里应该通过类名(“users”)引用对象实例?即什么时候是User
“用户”,什么时候是User
“会员”?
我们在模型中使用哪个?(此示例为 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}"
使用函数/关系名称似乎更易读,但使用类名更容易记住。有没有人发现(或发明!)这类事情的彻底和合乎逻辑的约定?
编辑:
- 将“更容易记住和重构”更改为“更容易记住”