我是Ruby / Rails的新手,这是我的第一个问题。我正在开发一个财务计划,它有一个月模型和一个交易模型,一个月有很多交易。我也在使用这里找到的awesome_nested_fields gem:https://github.com/lailsonbm/awesome_nested_fields。
一切都很好但是当我添加新事务时,日期默认为今天。我希望它默认为添加到当前月份的最后一笔交易的日期。例如,如果我添加了日期为5/15/2012的交易,则下一个交易应默认为该日期。这样做的最佳方法是什么?
答案 0 :(得分: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