Ruby 学生-课程。如何允许在课程初始化方法中设置上课天数?方法参数。红宝石

Ruby 学生-课程。如何允许在课程初始化方法中设置上课天数?方法参数。红宝石,ruby,rspec,Ruby,Rspec,我目前正在从事一项学生课程计划。一切都进行得很顺利,直到我发现自己很难理解是谁允许我的initialize方法有一个参数days,该参数的值可以是一周中的任何一天:mon,:tue,… 更具体地说,我正在努力解决的问题是,我应该在哪里以及如何将一周中可以包含在我的课程的initialize参数中的天数列表包括在内 到目前为止,我的课程是这样的: class Course attr_reader :department, :name, :credits, :time_block, :

我目前正在从事一项学生课程计划。一切都进行得很顺利,直到我发现自己很难理解是谁允许我的initialize方法有一个参数
days
,该参数的值可以是一周中的任何一天
:mon,:tue,…

更具体地说,我正在努力解决的问题是,我应该在哪里以及如何将一周中可以包含在我的
课程的initialize参数中的天数列表包括在内

到目前为止,我的课程是这样的:

    class Course

  attr_reader :department, :name, :credits, :time_block, :days, :students

  def initialize(course_name, department, credits, time_block = nil, days = nil)  # where should I include the list of symbols : :mon,:tue,:weds ... ?? , also time_block? 
    @course_name = course_name
    @department = department
    @credits = credits
    @students = []
    @days = days
    @time_block = time_block
  end


  def name
    @course_name
  end

  def department
    @department
  end

  def credits
    @credits
  end

  def add_student(student)
    return if @students.include?(student)
    student.enroll(self)
  end

  def conflicts_with?(course2)
    return false if self.time_block != course2.time_block

    days.any? do |day|
      course2.days.include?(day)
    end
  end

end

是的,就是这么简单。

你可以有
天=[:周一、周二、周三、周四、周五、周六、周日]。在你的
课程中冻结
。您有什么特别需要的吗?谢谢@Anurag。是的,我不知道如何以及在何处添加一周中的天数列表,以便将其用作初始化方法中的参数。:/我如何允许该方法使用一组天数??向新实例传递一个天数数组?1
attr\u reader:name、:department、:credit
为这三个实例变量创建getter方法,因此重新定义这些getter是多余的。2.考虑将<代码> AdgSub学生> /代码>改为<代码>学生。注册(自),除非学生。包括(学生)< /代码>。注意,这使用getter
:students
。3.
:与?
冲突的第一条语句可以写入
返回false,除非time\u block==course2.time\u block<代码>自我
是隐式的,
除非
可能是首选,因为它避免了负面影响。噢,哇!!非常感谢@Huy Vo。是的,很简单。我只是新来的!!
class Course
  attr_reader :days
  def initialize(days)
    @days = days
  end
end

course = Course.new([:mon, :tue, ...])