我是一个新的RoR用户,我遇到了一些严重的ruby逻辑问题。我之前做了一些PHP,并确切知道我想做什么,以及如何在PHP中完成它,但它花了我几个小时,而且我没有接近在Rails中解决它。
我会尝试概述我的预期结果。
我有一个数据库模型,航行,有用户。每个用户都有生日,口语,姓名等。
我想在模型中创建我的业务逻辑。例如,对于航行物体,我希望能够在我的视图中调用一个方法来显示航行中的总用户,我希望能够显示这些用户所说的前3种语言,并收集年龄数据进入年龄(0-12岁,13-18岁,19-29岁等)。
我一直在使用attr_accessor将非数据库属性添加到我的模型中。下面我将概述一些伪代码,用于定义我要做的事情。
$table->engine = 'InnoDB';
Ruby方法似乎不允许我在同一个方法中设置多个变量。当我这样做时,它似乎会回归'过早。
我有什么办法可以在模型中使用这个逻辑吗?或者我在Ruby中尝试做什么甚至是什么?
谢谢
更新
我以为我会更新我的问题,试图让事情变得更清晰。以下代码位于视图中,但我想将其移至模型。
def gather_data
self.travelling_parties.flat_map do |party|
party.party_registers.map do |reg|
reg.user.detailed_user # Returns an array of all my users (working as intended)
** Count up users and set to non-database attribute **
** Calculate age of users and set three non-database attributes to the largest 3 age groupings **
** Count languages and set three non-database attributes to the largest 3 languages
end
我的想法是我将每个字符串设置为哈希值,如果存在,我将值增加1。我认为Ruby中的最佳实践是在模型中执行此操作,但对于我的生活,我无法弄明白。
干杯。