Ruby on rails 发票模式及;rails中的视图-如何

Ruby on rails 发票模式及;rails中的视图-如何,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,invoice,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Invoice,我想在rails中创建一个发票。发票可以有项目,每个项目都有数量和价格。这是我们每天看到的典型发票 创建发票的最佳方法是什么 发票和项目的通用模型是什么 如我所见,项目将是一个单独的模型。但是,我们如何能够拥有一个发票视图,它创建发票和添加到其中的项目 例如,我想创建类似以下示例发票表单的内容: 更新: 除了答案之外,以下链接对于解决问题也很有用: 发票示例: 此外,ryan bates还为同样的目的创建了一个rails插件!: 更新2: 另一个解决方案正是我想要的: 我会有一个发票模型

我想在rails中创建一个发票。发票可以有项目,每个项目都有数量和价格。这是我们每天看到的典型发票

创建发票的最佳方法是什么

  • 发票和项目的通用模型是什么

  • 如我所见,项目将是一个单独的模型。但是,我们如何能够拥有一个发票视图,它创建发票和添加到其中的项目

  • 例如,我想创建类似以下示例发票表单的内容:


    更新:

    除了答案之外,以下链接对于解决问题也很有用: 发票示例:

    此外,ryan bates还为同样的目的创建了一个rails插件!:


    更新2:

    另一个解决方案正是我想要的:

    我会有一个发票模型、一个项目模型和一个将它们链接在一起的模型,这样您就可以节省数量、价格等:

    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
    
    class发票:发票\u项目
    结束
    类InvoiceItem:发票项目
    结束
    
    InvoiceItem模型将包含与发票和项目之间的链接相关的任何数据。这将包括诸如价格、数量、折扣或任何其他你可能有的东西

    为了回答关于使用单一视图的第二个问题,我可以通过Invoice资源公开这个问题

    class InvoicesController < ApplicationController
      def show
        @invoice = Invoice.find(params[:id]).includes(:invoice_items => :items)
      end
    end
    
    class InvoicesController:项目)
    结束
    结束
    
    然后,您的视图可以迭代项目:

    <% @invoice.invoice_items.each do |item| %>
      <%= item.quantity %>
    <% end %>
    
    
    
    感谢您提供的解决方案。对于第二个问题,我们如何创建包含项目的新发票。正如我模糊地理解的,我们需要使用partials?是的,你可以使用partials,我强烈推荐,但这不是必需的。我在回答中没有提到这一点的原因是因为这有点难以解释,而我试图理解的一点是,您只是在重复这些项。非常感谢您提供的解决方案。我在同一行中找到了一个示例应用程序:也有相关的rails强制转换