0

請求アプリケーションを実行しようとすると、私は4つのモデルの顧客を持っています。特に、請求書と請求書の顧客は登録ユーザーであり、多くの請求書を持つことができます。請求書には多くの既存の詳細のみを含めることができます。私のモデルは以下のとおりです

class Customer < ActiveRecord::Base
  attr_accessible :name, :ph_no

  validates :name, :ph_no, :presence => true

  has_many :bills
end


class Particular < ActiveRecord::Base
  attr_accessible :part_name, :part_qty

  validates :part_name, :presence => true

  has_many :billparts
  has_many :bills, :through => :billparts
end

class Bill < ActiveRecord::Base
  attr_accessible :billdisc, :customer_id

  validates :billdisc, :customer_id, :presence => true

  belongs_to :customer
  has_many :billparts
  has_many :particulars, :through => :billparts
end


class Billpart < ActiveRecord::Base
  attr_accessible :bill_id, :part_amt, :particular_id

  belongs_to :bill
  belongs_to :particular

end

私の課金コントローラー

def new
    @bill = Bill.new(customer_id: params[:customer_id])

    #billpart
      @all_billparts = Billpart.all

      @billpart = Billpart.new

      @all_particulars = Particular.all 

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @bill }
    end
  end

新しい請求ビュー

<%= form_for(@bill) do |f| %>
  <% if @bill.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@bill.errors.count, "error") %> prohibited this bill from being 
 saved:</h2>

      <ul>
      <% @bill.errors.full_messages.each do |msg| %>
       <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :customer_id %><br />
    <%= f.number_field :customer_id %>
  </div>

<%= form_for(@billpart) do |f| %>
  <% if @billpart.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@billpart.errors.count, "error") %> prohibited this billpart  
from being saved:</h2>

      <ul>
      <% @billpart.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :bill_id %><br />
    <%= f.number_field :bill_id %>
  </div>
  <div class="field">
    <%= f.label :particular_id %><br />
    <%= f.collection_select :particular_id, @all_particulars, :id, :part_name %>
  </div>
  <div class="field">
    <%= f.label :part_amt %><br />
    <%= f.number_field :part_amt %>
  </div>
  <div class="actions">
    <%= f.submit "Add more" %>
  </div>
<% end %>

  <div class="field">
    <%= f.label :billdisc %><br />
    <%= f.number_field :billdisc %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

上記のコードを使用して新しい請求書を生成しようとすると、bill_id がなく、billpart が関連付ける bill_id を取得する方法

4

1 に答える 1