Rails,从一个方法设置多个非数据库属性

时间:2016-05-22 19:17:38

标签: ruby-on-rails

我是一个新的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中的最佳实践是在模型中执行此操作,但对于我的生活,我无法弄明白。

干杯。

0 个答案:

没有答案
相关问题