首先,如果这是一个太多的新手问题,我道歉。我只能在业余时间编码,所以我经常在每个项目中从头开始重新学习。
我有一个类Person
,其属性为name
,birth-date
和gender
,所以我可以创建一个24岁的迈克尔男,和Belinda,一名17岁的女性。
但是,还有其他隐藏的预定义属性应根据年龄和性别自动分配给这些人。它们不是由人在创建时定义的,并且以后不能由用户编辑。
因此,举例来说,我们可以拥有隐藏属性favorite-book
和favorite-movie
,它们会有所不同,具体取决于Person
是18岁以下的男性,男性是18岁40岁,或40岁以上的男性;或18岁以下的女性,18-40岁的女性或40岁以上的女性。
我应该怎么做?我应该在Person
配置文件中创建这些属性,但不在界面上显示它们,只是根据输入自动填充它们?或者将其他属性创建为“类别”,并将人员分配给其中一个?请记住,我必须经常在界面中使用这些信息,并且人们应该随着年龄的增长自动更改组。
另外,在Rails中这样做怎么样?有人告诉我“使用哈希”,但我不清楚这种方法的具体细节。
答案 0 :(得分:1)
我认为你的第一个建议应该可以正常工作“在Person配置文件中创建这些属性,但不要在界面上显示它们,只是根据输入自动填充它们”。除非您试图说明这些额外的数据是精细还是巨大,否则将其存储在Person模型中应该没问题。这样的实现将如下所示:
class Person < ActiveRecord::Base
after_validation :assign_favorites, :on => :create
def assign_favorites
if self.age < 18 && self.sex == 'male'
self.favorite_book = 'Hunger Games'
elsif self.age >= 18 && self.sex == 'male'
...
end
end
end