是否可以使用Rails和Postgres设置灵活的数据类型?

时间:2016-01-04 13:47:30

标签: ruby-on-rails postgresql

我正在设置问答模型,有些问题需要布尔答案,有些问题需要Text,有些整数,有些枚举(我猜这与整数相同,但我需要在模型)和一些日期时间)。我是否可以在Answer模型中设置一个灵活的模型列(例如,一个接受任何数据的答案列,并且只根据问题对象的answer_type设置它)?或者更好的是设置YesNoAnswer模型,TextAnswer模型,IntegerAnswer模型等,然后在Question模型上根据answer_type列选择所需类型的答案模型?

对于它的价值,我打算使用YAML文件将预设问题加载到数据库中,该文件“知道”发送控制器的next_question取决于前一个问题的答案。请参阅我之前的问题here

我听说过变种数据类型,但我不确定Rails是否可行。

1 个答案:

答案 0 :(得分:2)

请参阅here列出在rails中使用的数据类型,btw,this列出所有postgres的数据类型,可能,我们没有什么你期待的。

我之前使用多种数据类型的项目的经验是:

  
      
  1. 定义value列(类型为文本,因此足以包含任何内容)
  2.   
  3. 定义一个value_type列(这是一个枚举:{:integer,:boolean,..}例如)
  4.   
  5. 定义验证回调以验证value& value_type
  6.   

希望这会对你有所帮助