传递对象或对象ID?

Chr*_*ris 2 ruby oop activerecord ruby-on-rails

鉴于以下代码,哪种注册方法更好,为什么?或者这个代码是否应该以其他方式完全改进?

我对上述"更好"的想法基本归结为1)大多数哲学上正确的(最佳实践)和2)最有效/高效的.

Class Course < ActiveRecord::Base
  has_many :enrollments # basically a join table
  has_many :students, :source => :user, :through => :enrollments
  def enroll_this_way(student)
    self.enrollments << Enrollment.new(:course_id => self.id, :student_id => student.id)
  end
  # OR
  def enroll_that_way(student_id)
    self.enrollments << Enrollment.new(:course_id => self.id, :student_id => student_id)
  end
end
Run Code Online (Sandbox Code Playgroud)

zed*_*xff 12

def enroll_this_way(student)
  self.enrollments.build :student => student
end
Run Code Online (Sandbox Code Playgroud)