0

我是 Ruby/Rails 的新手,这是我的第一个问题。我正在开发一个具有月份模型和一个月有许多交易的交易模型的财务计划。我还使用了此处的 awesome_nested_fields gem:https ://github.com/lailsonbm/awesome_nested_fields 。

一切正常,但是当我添加新交易时,日期默认为今天。我希望它默认为添加到当月的最后一笔交易的日期。例如,如果我添加了一个日期为 2012 年 5 月 15 日的事务,则下一个事务应默认为该日期。这样做的最佳方法是什么?

4

1 回答 1

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
于 2012-06-01T22:23:13.143 回答