使用相同的表单创建 Rails 个对象
Creating Rails objects using same form
我正在构建一个应用程序来管理债务,并尝试使用相同的表单创建三个对象。
模型是;
债务(欠款)
class Debt < ActiveRecord::Base
belongs_to :user
belongs_to :creditor
belongs_to :debtor
accepts_nested_attributes_for :debtor, :creditor
end
债务人(欠债的人)
class Debtor < ActiveRecord::Base
belongs_to :user
has_many :debts
end
债权人(欠债的人)
class Creditor < ActiveRecord::Base
belongs_to :user
has_many :debts
end
我正在使用新的债务表格,并希望显示债务人和债权人的字段。因此,当创建新债务时,关联的债务人和债权人也会创建。
我已经查看了文档,但是无法在表单上显示债务人或债权人的字段。
这是表格
<%= simple_form_for(@debt) do |f| %>
<%= f.error_notification %>
<!-- Debt fields -->
<div class="form-inputs">
<%= f.association :user %>
<%= f.input :amount %>
<%= f.input :commission %>
<%= f.input :invoice_issued %>
<%= f.input :invoice_date %>
<%= f.input :status %>
<%= f.input :details %>
</div>
<!-- Debtor Fields -->
<ul>
<%= f.fields_for :debtor do |debtor_form| %>
<li>
<%= debtor_form.association :user %>
<%= debtor_form.input :business_name %>
<%= debtor_form.input :abn %>
<%= debtor_form.input :first_name %>
<%= debtor_form.input :last_name %>
<%= debtor_form.input :email %>
<%= debtor_form.input :mobile_number %>
<%= debtor_form.input :phone_number %>
</li>
<% end %>
</ul>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
感谢任何帮助。
编辑
create_table "debts", force: :cascade do |t|
t.integer "user_id"
t.float "amount"
t.float "commission"
t.boolean "invoice_issued"
t.date "invoice_date"
t.string "status"
t.text "details"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
结束
您需要在控制器中建立债务的债务人或债权人:
#controller
def new
@debt = Debt.new
@debt.build_debtor
@bebt.build_creditor
end
我正在构建一个应用程序来管理债务,并尝试使用相同的表单创建三个对象。
模型是;
债务(欠款)
class Debt < ActiveRecord::Base belongs_to :user belongs_to :creditor belongs_to :debtor accepts_nested_attributes_for :debtor, :creditor end
债务人(欠债的人)
class Debtor < ActiveRecord::Base belongs_to :user has_many :debts end
债权人(欠债的人)
class Creditor < ActiveRecord::Base belongs_to :user has_many :debts end
我正在使用新的债务表格,并希望显示债务人和债权人的字段。因此,当创建新债务时,关联的债务人和债权人也会创建。
我已经查看了文档,但是无法在表单上显示债务人或债权人的字段。
这是表格
<%= simple_form_for(@debt) do |f| %>
<%= f.error_notification %>
<!-- Debt fields -->
<div class="form-inputs">
<%= f.association :user %>
<%= f.input :amount %>
<%= f.input :commission %>
<%= f.input :invoice_issued %>
<%= f.input :invoice_date %>
<%= f.input :status %>
<%= f.input :details %>
</div>
<!-- Debtor Fields -->
<ul>
<%= f.fields_for :debtor do |debtor_form| %>
<li>
<%= debtor_form.association :user %>
<%= debtor_form.input :business_name %>
<%= debtor_form.input :abn %>
<%= debtor_form.input :first_name %>
<%= debtor_form.input :last_name %>
<%= debtor_form.input :email %>
<%= debtor_form.input :mobile_number %>
<%= debtor_form.input :phone_number %>
</li>
<% end %>
</ul>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
感谢任何帮助。
编辑
create_table "debts", force: :cascade do |t|
t.integer "user_id"
t.float "amount"
t.float "commission"
t.boolean "invoice_issued"
t.date "invoice_date"
t.string "status"
t.text "details"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
结束
您需要在控制器中建立债务的债务人或债权人:
#controller
def new
@debt = Debt.new
@debt.build_debtor
@bebt.build_creditor
end