2012-06-01 35 views
0

我是Ruby/Rails的新手,這是我的第一個問題。我正在開發一個財務計劃,該計劃有一個月模型和一個交易模型,每月有很多交易。我也使用這裏找到的awesome_nested_fields gem:https://github.com/lailsonbm/awesome_nested_fields使用Rails,在date_select字段上設置更改的默認日期的最佳方法是什麼?

一切正常,但當我添加一個新的交易時,日期默認爲今天。我希望它默認爲添加到當前月份的最後一筆交易的日期。例如,如果我添加了一個日期爲5/15/2012的交易,則下一個交易應該默認爲該日期。做這件事的最好方法是什麼?

+0

你可以發佈或粘貼(http://pastie.org/)你的一些代碼嗎? – microspino

回答

1

所以可以說你正在做這樣的事情在你的控制器:

class TransactionsController < ApplicationController 

    def new 
    @transaction = current_user.transactions.build 
    end 
end 

。更改爲:

class TransactionsController < ApplicationController 

    def new 
    @transaction = current_user.transactions.build(date: current_user.next_transaction_date) 
    end 
end 
在用戶

然後,你可以計算出使用日期

class User < ActiveRecord::Base 

    def last_transaction_in_current_month 
    transactions.where("date >= ?", Date.today.beginning_of_month).order("date desc").first 
    end 

    def next_transaction_date 
    return Date.today if last_transaction_in_current_month.nil? 
    last_transaction_in_current_month 
    end 
end 
相關問題