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 に答える