今考えていることは…
私は本(エントリ)でいっぱいの図書館を持っています。各本には多くのチェックアウト (埋め込みドキュメント) があります。
私がやりたいと思うのは、チェックアウト時に、埋め込みドキュメントとして新しい「チェックアウト」を作成することです。チェックイン時に、チェックアウトを編集して「date_checked_out」フィールドを追加したい...
問題は、現在のモデル/コントローラーがチェックインまたはチェックアウトのたびに新しいエントリを作成することです...したがって、二重に冗長です...
これについて最善の方法は何ですか?詳細が必要ですか?
チェックアウト コントローラー:
def new
@entry = Entry.find(params[:entry_id])
@checkout = @entry.checkout.new
respond_to do |format|
format.html {render :layout => false}
end
end
def create
@entry = Entry.find(params[:entry_id])
@entry.update_attributes(:checked_out => "Out")
@checkout = @entry.checkout.create!(params[:checkout])
redirect_to "/", :notice => "Book Checked Out!"
end
class Checkout
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
field :checkout_date, :type => Time
field :checkout_date_due, :type => Time
field :book_in, :type => Time, :default => Time.now
field :book_out, :type => Time, :default => Time.now
embedded_in :entries, :inverse_of => :entries
end