在belong_to 上的Rails 嵌套表单如何创造新的价值我嵌套的问题属于模型

问题描述

我遇到的问题是我在具有belongs_to的模型中添加了嵌套属性。我知道嵌套属性通常会出现在 has_many 的模型中。

 class Project < ApplicationRecord
  belongs_to :project_status
  belongs_to :booking
  belongs_to :company

  accepts_nested_attributes_for :booking
  accepts_nested_attributes_for :company
end

class Company < ApplicationRecord
    has_many :projects
end

class Booking < ApplicationRecord
  belongs_to :vehicle
  belongs_to :user

  has_many :projects
end

下面是我创建的表格。问题是我想在这个表单中创建一个新的预订,但是因为项目表已经引用了预订,它不允许我创建一个新项目,因为需要预订。但是,我希望能够在项目表单内创建预订。但我不知道该怎么做。

如果我单独创建一个预订,我可以在表单中手动输入预订 ID,它会保存。但我不想要这个。我希望能用项目表格来做。

<%= form_for :project do |form| %>
 
 .......

  <%= form.fields_for :company do |c| %>

    <%= c.label :companyName %>
    <%= form.select :company_id,Company.all.collect { |p| [ p.companyName,p.id ] },include_blank: true %>

  <% end %>

  <%= form.fields_for :booking do |b| %>

    <div class="field">
      <%= form.label :booking_id %>
      <%= form.text_field :booking_id %>
    </div>

     <%= render 'booking_fields',b: b  %>

  <% end %>


  <div class="actions">
    <%= form.submit %>
  </div>
<% end %>

我的项目控制器看起来像这样。

  def new
    @project = Project.new
    @project.build_booking
    @project.build_company
  end

  def project_params
      params.require(:project).permit(
        :porjectName,.....
        booking_attributes: [:id,:bookingStartDate,:bookingEndDate,:vehicle_id,:user_id],company_attributes: [:companyName])
    end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...