2011-04-28 46 views
1

我不敢相信我甚至不得不问这个问题,但它是“那些日子中的一个”,我不能直截了当。在View中使用创建ActiveRecord模型属性

我正在使用MySQL数据库中的数据创建一个简单的Rails应用程序。在其中一个表中,有一个创建时间戳的列(creation_ts)。我想要做的是创建一个模型属性,成为每个模型对象的一部分。在这种情况下,如果记录的创建时间戳比一个月早,我希望它将“迟到”属性设置为true(如果不是,则为false)。然后我可以在动态设置HTML元素属性时在视图中使用它。

同样,我应该知道这一点(其实,我已经完成这之前)我只是画了一个完整的空白。

回答

2

Rails 3使用'created_at'来存储第一次保存的日期。在你的模型,说Model.rb,你可以添加如下定义的后期访问:

def late? 
    created_at > 1.month.ago 
end 

将返回true或false。

然后在你的观点,你可以做类似

<% if @model.late? %> 
    <%= @model.something_to_show %> 
<% end %> 

伊恩。

+0

因为它返回布尔值,所以方法名'late?'是合适的。 – rubyprince 2011-04-28 04:29:25

+0

是的,我同意,迟到?更好。编辑来反映。 – ipd 2011-04-28 04:37:25