【问题标题】:Rails scaffold with a property representing an array of days and times?Rails 脚手架具有代表一系列日期和时间的属性?
【发布时间】:2013-09-02 08:12:51
【问题描述】:

我正在尝试为单个模型对象生成一个脚手架。模型对象有几个字符串属性和几个布尔值。作为我模型的一部分,我需要一个哈希数组的属性。每个哈希代表一周中的一天,以及开始时间和结束时间。作为 JSON,我的对象如下所示:

{
  Name: "John Doe",
  Dept: "Health",
  Office Hours: [
    {
      Day: "Tuesday",
      Start: "10:00AM",
      End: "2:00PM"
    }, 
    { ... }
  isAdjunct: true
}

我不知道如何创建它。我显然是 Rails 的新手,我只是想快速把一些东西放在一起。

构建这种数据模型的最佳方法是什么?我需要两个 ActiveRecord 类吗?我错过了一些重要信息吗?

【问题讨论】:

    标签: ruby-on-rails ruby scaffolding


    【解决方案1】:

    是的,您可能需要两个数据模型;比如PersonOfficeTime(你可能会想到更好的名字!);然后像这样把它们绑在一起:

    class Person < ActiveRecord::Base
      # name, dept, adjunct?
      has_many :office_times
    end
    
    class OfficeTime < ActiveRecord::Base
      # day, start, end
      belongs_to :person # database has a person_id field
    end
    

    查看 Rails 指南chapter on Relations 以获得更多指导。

    【讨论】:

      【解决方案2】:

      为了让您入门,我认为您需要两个模型; Person 和Availability with Person has_may availability(注意默认的复数形式)和Availabilty belongs_to person。

      【讨论】:

        【解决方案3】:

        使用关联.........

        创建迁移或使用rails g migration add_person_id_to_hours person_id:integer

         class Person < ActiveRecord::Base
            has_many :hours
           end
        
          class Hours < ActiveRecord::Base
            belongs_to :person 
          end
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-09
          • 1970-01-01
          • 2017-06-16
          • 1970-01-01
          • 2021-12-19
          • 1970-01-01
          • 2022-01-13
          相关资源
          最近更新 更多