0
Ich versuche, in zwei Tabellen in der gleichen Zeit zu speichern, verschachtelte Form verwenden. Ich weiß nicht, warum das nicht passiert. Schienenfehler sagt "1 Fehler hat verhindert, dass diese Person gespeichert wird:" Warum erhält die juristische Person nicht die Person_id?Probleme mit verschachtelten Formular-Rails
Modelle
class Person < ApplicationRecord
has_one :legal_person, dependent: :destroy
accepts_nested_attributes_for :legal_person
end
class LegalPerson < ApplicationRecord
belongs_to :person
end
-Controller
class PeopleController < ApplicationController
before_action :set_person, only: [:show, :edit, :update, :destroy]
# GET /people
# GET /people.json
def index
@people = Person.all
end
# GET /people/1
# GET /people/1.json
def show
end
# GET /people/new
def new
@person = Person.new
@person.build_legal_person
end
# GET /people/1/edit
def edit
end
# POST /people
# POST /people.json
def create
@person = Person.new(person_params)
respond_to do |format|
if @person.save
format.html { redirect_to @person, notice: 'Person was successfully created.' }
format.json { render :show, status: :created, location: @person }
else
format.html { render :new }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /people/1
# PATCH/PUT /people/1.json
def update
respond_to do |format|
if @person.update(person_params)
format.html { redirect_to @person, notice: 'Person was successfully updated.' }
format.json { render :show, status: :ok, location: @person }
else
format.html { render :edit }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
# DELETE /people/1
# DELETE /people/1.json
def destroy
@person.destroy
respond_to do |format|
format.html { redirect_to people_url, notice: 'Person was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_person
@person = Person.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def person_params
#params.require(:person).permit(:nome, :tipopessoa, :telefonefixo, :telefonecelular)
params.require(:person).permit(:nome, :tipopessoa, :telefonefixo, :telefonecelular,
legal_person_attributes: LegalPerson.attribute_names.map(&:to_sym))
#legal_person_attributes: [:id, :cnpj, :nomefantasia, :person_id])
end
end
Fehler
Parameters: {"utf8"=>"✓", "authenticity_token"=>"pAAOYapSgnF8H6O2cJMpHSN6POBwAzycy00Tij5TKFDv+8d+EErtdQGKuRbay4IxKrUQjXVPq5MblVgjv5Fa5g==", "person"=>{"nome"=>"qweqw", "tipopessoa"=>"wqeqweq", "telefonefixo"=>"qweqe", "telefonecelular"=>"qweqw", "legal_person_attributes"=>{"cnpj"=>"qweqw", "nomefantasia"=>"wqewe"}}, "commit"=>"Criar Person"}
(0.1ms) BEGIN
(0.2ms) ROLLBACK