如何在Rails上为新用户设置或分配预定义的属性



首先,如果这是一个太多的新手问题,我很抱歉。我只能在业余时间编写代码,所以我经常在每个项目中从头开始重新学习。

我有一个类Person,属性为namebirth-dategender,所以我可以创建,比如说,24岁的男性Michael和17岁的女性Belinda。

然而,还有其他隐藏的预定义属性,应该根据年龄和性别自动分配给这些人。它们不是由人类在创建时定义的,用户以后也不能编辑。

因此,例如,我们可以有隐藏属性favorite-bookfavorite-movie,它们将根据Person是18岁以下的男性、18-40岁的男性还是40岁以上的男性而不同;或18岁以下的女性、18-40岁的女性或40岁以上的女性。

我该怎么做?我应该在Person配置文件中创建这些属性,但不在界面上显示它们,而是根据输入自动填充它们吗?或者将其他属性创建为"类别",并将人员分配给其中一个?请记住,我必须经常在界面中使用这些信息,人们应该随着年龄的增长自动更改组。

另外,在Rails中这样做看起来怎么样?有人告诉我"使用哈希",但我不清楚这种方法的细节。

我认为你的第一个建议应该很好"在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

最新更新