0

Railsで請求書を作成したいと考えています。請求書にはアイテムを含めることができ、各アイテムには数量と価格が含まれます。毎日目にする典型的な請求書です。

請求書を作成するには、何が最善の方法ですか。

  1. 請求書とアイテムの共通モデルは何ですか?

  2. 私が見るように、アイテムは別のモデルになります。しかし、請求書と請求書に追加されたアイテムの両方を作成する、請求書用の 1 つのビューを作成するにはどうすればよいでしょうか?

たとえば、このサンプルの請求書フォームのようなものを作成したい: http://sourceforge.net/projects/gal/screenshots/48841


アップデート:

回答に加えて、次のリンクが問題の解決に役立ちます: 請求書の例: https://github.com/linkworks/invoices

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

また、ryan bates は同じ目的のために Rails プラグインを作成しました!: https://github.com/ryanb/nested_form


更新 2:

まさに私が探していた別のソリューション: Google キャッシュ バージョン

4

1 に答える 1

1

Invoice モデル、Item モデル、およびそれらをリンクして数量や価格などを節約できるモデルを用意します。

class Invoice < ActiveRecord::Base
  has_many :invoice_items
  has_many :items, :through => :invoice_items
end

class InvoiceItem < ActiveRecord::Base
  belongs_to :invoice
  belongs_to :item
end

class Item < ActiveRecord::Base
  has_many :invoice_items
  has_many :invoices, :through => :invoice_items
end

InvoiceItem モデルには、請求書とアイテムの間のリンクに関連するすべてのデータが含まれます。これには、価格、数量、割引、またはその他の可能性のあるものが含まれます。

単一のビューを持つことに関する 2 番目の質問に答えるために、Invoice リソースを介してこれを公開できます。

class InvoicesController < ApplicationController
  def show
    @invoice = Invoice.find(params[:id]).includes(:invoice_items => :items)
  end
end

次に、ビューはアイテムを反復処理できます。

<% @invoice.invoice_items.each do |item| %>
  <%= item.quantity %>
<% end %>
于 2012-09-02T13:19:23.920 に答える