在Rails中将这种计算放在哪里?

时间:2013-09-17 23:13:41

标签: ruby-on-rails model-view-controller

我已经开始学习ROR并且同时创建了一个简单的应用程序。

基本上,应用程序使用计算来计算今天与数据库中存储的另一个日期之间的差异。我不知道放置这种代码的最方便的方法是什么。

目前,位于我今天从数据库中的日期减去的视图中放置:

#user.html.erb

Month difference : <%= (Date.today - @user.date_signed).to_i/30

和控制器:

 class UserController < ApplicationController
  def user
  @user = User.find(params[:id])

有没有更好的方法可以实现同样的目标?如果是这样怎么样?

谢谢

1 个答案:

答案 0 :(得分:5)

它属于模型,因为您希望将其作为用户的另一个属性来处理。

class User < ActiveRecord::Base
  def months_since_signed
    (Date.today - self.date_signed).to_i/30
  end
end

然后,在您的视图中,只需使用User实例作为接收方调用该方法。

Month difference : <%= @user.months_since_signed %>