Недопустимый параметр: address_fields - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь создать вложенные атрибуты, но получаю следующую ошибку "Unpermitted parameter: address_fields" поля появляются, когда я пытаюсь сгенерировать и создать новый вложенный адрес, но не сохраняется.

В контроллере:

def praject_params
  params.require(:praject).permit(:name, :cpf, :phone, :email, :zip, :city, :state, :borough, :street, :number, :comp, :type, address_attributes: [ :id, :ziptwo, :citytwo, :statetwo, :boroughtwo, :streetwo, :numbertwo, :comptwo, :typetwo])
end

В модели адреса:

class Address < ApplicationRecord
  self.inheritance_column = :foo
  belongs_to :praject, optional: true
end

В модели:

class Praject < ApplicationRecord
  self.inheritance_column = :foo
  has_many :addresses, inverse_of: :praject, dependent: :destroy
  accepts_nested_attributes_for :addresses, allow_destroy: true, reject_if: proc { |att| att['name'].blank?}
  before_save do
    self.type.gsub!(/[\[\]\"]/, "") if attribute_present?("type")
  end
end
class CreateAddresses < ActiveRecord::Migration[5.0]
  def change
    create_table :addresses do |t|
      t.string :ziptwo
      t.string :citytwo
      t.string :statetwo
      t.string :boroughtwo
      t.string :streetwo
      t.string :numbertwo
      t.string :comptwo
      t.string :typetwo
      t.belongs_to :praject, foreign_key: true

      t.timestamps
    end
  end
end

В _form.html.erb У меня просто есть кнопка для добавления нового вложенного поля адреса. Самое смешное, что эта ошибка появляется в консоли, когда запущено приложение rails, и я пытаюсь создать новый проект, я пытался сменить контроллер на address_attributes [] и тоже не работает. Может кто-нибудь мне помочь? Я схожу с ума от этого, я попробовал почти все, и ничего не работает.

## _form.html.erb

<%= f.error_notification %>
  <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>

  <th>
    <div class="form-inputs">
      <%= f.input :name, label: 'Name' %>
      <%= f.input :cpf, label: 'Cpf' %>
      <%= f.input :phone, label: 'Phone' %>
      <%= f.input :email, label: 'Email' %>
      <%= f.input :zip, label: 'Zip' %>
      <%= f.input :city, label: 'City' %>
      <%= f.input :state, label: 'State' %>
      <%= f.input :borough, label: 'Neighbourhood' %>
      <%= f.input :street, label: 'Street' %>
      <%= f.input :number, label: 'Number' %>
      <%= f.input :comp, label: 'Comp' %>
      <div class="field">
        <h4>Type:</h4>

        <%= label_tag 'type_comer', 'Comercial' %>
        <%= check_box_tag 'praject[type][]', 'comercial', checked('comercial'), id: 'type_comer' %>

        <%= label_tag 'type_res', 'Residential' %>
        <%= check_box_tag 'praject[type][]', 'Residential', checked('Residencial'), id: 'type_res' %>

        <%= label_tag 'type_farm', 'Rural' %>
        <%= check_box_tag 'praject[type][]', 'Rural', checked('Rural'), id: 'type_farm' %>

        <%= label_tag 'type_beach', 'Beach' %>
        <%= check_box_tag 'praject[type][]', 'Beach', checked('Beach'), id: 'type_beach' %>

      </div>
    </div>
    <h3>Secondary Addresses:</h3>
  </th>
<div class="field"

1 Ответ

0 голосов
/ 10 февраля 2020
<%= form_for(@praject) do |f| %>
   # ...
  <%= f.fields_for(:addresses) do |address| %>
    <%= address.input :cpf, label: 'Cpf' %>
    <%= address.input :phone, label: 'Phone' %>
    <%= address.input :email, label: 'Email' %>
    <%= address.input :zip, label: 'Zip' %>
    <%= address.input :city, label: 'City' %>
    <%= address.input :state, label: 'State' %>
    <%= address.input :borough, label: 'Neighbourhood' %>
    <%= address.input :street, label: 'Street' %>
    <%= address.input :number, label: 'Number' %>
    <%= address.input :comp, label: 'Comp' %>
  <% end %>
  # ...
<% end %>

Если вы используете simple_form, используйте вместо него обернутый метод simple_fields_for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...