简体   繁体   English

Rails 6嵌套不显示form_with

[英]Rails 6 nested not displaying form_with

class CustomerType < ApplicationRecord
  belongs_to :workspace, inverse_of: :customer_type
  validates_presence_of :workspace
end

class Workspace < ApplicationRecord
  validates :name, presence: true, uniqueness: { case_sensitive: false }

  has_one :customer_type
  accepts_nested_attributes_for :customer_type, allow_destroy: true
end
# controller

  def new
    @workspace = Workspace.new
    @workspace.build_customer_type
  end
# _form
<%= form_with(model: [:back_office, @workspace]) do |form| %>
...
  <%= form.fields_for :customer_type, @workspace.customer_type do |s| %>
    <%= s.label :build, 'Build', class: 'form-check-label'%>
    <%= s.radio_button :build, 'build', class: 'form-check-input'%>
  <% end %>
...
<% end %>


class CreateCustomerTypes < ActiveRecord::Migration[6.1]
  def change
    create_table :customer_types, id: :uuid do |t|
      t.boolean :build, default: false
      t.boolean :grow, default: false
      t.boolean :connector, default: false
      t.references :workspace, null: false, foreign_key: true, type: :uuid

      t.timestamps
    end
  end
end

The creation between workspace and customerType is done well my puts in the controller shows me the class workspacecustomerType类型之间的创建做得很好我在 controller 中显示了 class

I know there is probably a post with the solution but I couldn't find it我知道可能有一个解决方案的帖子,但我找不到

it does not appear in the form is there an error?它没有出现在表格中是不是有错误?

your form was not indented correctly:您的表单没有正确缩进:

it should look like它应该看起来像

# _form
<%= form_with(model: [:back_office, @workspace]) do |form| %>
...
  <%= form.fields_for :customer_type, @workspace.customer_type do |s| %>
    <%= s.label :build, 'Build', class: 'form-check-label'%>
    <%= s.radio_button :build, 'build', class: 'form-check-input'%>
  <% end %>
...
<% end %>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM