我试图创建一个具有表单的应用程序,他们有问题,谁又会有答案。这些问题需要不同类型的答案,例如自由文本或从一组可能的选项中选择(多选题)。不同类型的问题从基类继承问题。这是证明有问题的多选题。从Ruby on Rails序列化的NoMethodError
将会有不同的可能的答案集合(如1-5,1-8或是/否)有多个选择题。我正在考虑创建一个类MultipleChoiceQuestion < Question,答案选择以数组的形式给出,然后使用序列化保存到数据库。然而,我却无法让序列化工作。
从谷歌上搜索的时候,我已经数字,序列化,应当以书面工作:
class MultipleChoiceQuestion < Question
serialize :choices, Array
end
现在,如果我打开控制台轨道,并键入
q1 = MultipleChoiceQuestion.new
q1.choices
我只得到选项的NoMethodError。有什么我需要做的序列化工作?我也尝试通过编辑迁移文件和迁移数据库来在数据库中添加文本列“选项”,但它也没有帮助。
我使用的是Rails 3.2.6和PostgreSQL 9.1。
更新:如果我将MultipleChoiceQuestion类更改为从ActiveRecord :: Base继承而不是Question继承,则序列化将起作用。但问题从ActiveRecord :: Base继承,所以我不明白问题是什么。
是'Question'延长'的ActiveRecord :: Base'的新模式(和一些数据库表),例如:? – deefour 2012-07-27 15:12:26