2011-04-08 170 views
1

我有一个简单的应用程序,它有一个表(只是一个名称属性)中的客户端列表,并在另一个表中跟踪他们的季度储蓄(金额,季度和年份属性) 。 A Client has_many :savingsSaving belongs_to :client。随着储蓄数据进入,有一个地点进入季度和年度(两个单独的领域),都是整数。在客户机上显示页面,我列出了必须做进入的储蓄数据的宿舍下面:Rails - 如何对数据进行排序

在我clients_controller下显示:

@savings = @client.savings 

在我的客户show.html.erb:

<% @savings.each do |saving| %> 
    <%= link_to "Q#{saving.quarter} #{saving.year}", edit_saving_path %> 
<% end %> 

在屏幕上,这会呈现“Q1 2011”等条目的季度和日期。但是,它会按照输入时的顺序排列,我希望它们按时间顺序排列。

有两个问题,我该如何下单?第二,这是列出每个客户的储蓄条目的正确方法吗?

回答

2

1:

@savings = @client.savings.order("year") 

2: 你或许应该重写to_s与此陈述或至少把它放在一个帮手,你可能会需要这个代表“2011年第一季度”不止一次。

奖励: 应该edit_saving_path(保存)

+0

谢谢,这完全是有道理的。对于#2我很新,在这个,你是什么意思覆盖to_s(我没有看到在代码中,必须是默认?)与此表示或将其放入助手?哪一部分?在路径的末端放置(保存)是做什么的?谢谢你的帮助! – FattRyan 2011-04-08 01:13:53

+0

@ fattryan ..他的意思是说你可以在模型'Saving'中添加一个方法,像这样'def to_s; “Q#{季度}#{}一年”;结束“,以便您可以在视图中调用'link_to saving.to_s,edit_saving_path(save)'。 – rubyprince 2011-04-08 04:18:07