So basically I tried to create a record in a parent model for few hours. I'm clearly missing something here. My goal is to create a bill in the Bills table and, with basic guest info in the same form, create another record in the Guests table. View my code down below (sorry if the format is not adequate, it's my first post on stackoverflow)
bill.rb
class Bill < ApplicationRecord belongs_to :guest, inverse_of: :bills accepts_nested_attributes_for :guest
guest.rb
class Guest < ApplicationRecord has_many :bills, inverse_of: :guest
bills_controller.rb
def new @bill = Bill.new @bill.build_guest) ... def create @bill = Bill.new(bill_params) if @bill.save ... def bill_params params.require(:bill).permit(:special_req, guest_attributes: [:first_name, :last_name, :email])
_form.html.haml
=form_with(model: [:admin, @bill], local: true) do |form| .form-group.row .col-3 = form.label :room_id, class: "col-form-label text-dark" .col-9 = form.collection_select :room_id, @availabilities, :id, :door_no, class: "col-form-label text-dark" = form.fields_for :guests do |guest_form| .form-group.row .col-3 = guest_form.label :first_name, class: "col-form-label text-dark" .col-9 = guest_form.text_field :first_name, class: "form-control rounded", placeholder: "Tom" .form-group.row .col-3 = guest_form.label :last_name, class: "col-form-label text-dark" .col-9 = guest_form.text_field :last_name, class: "form-control rounded", placeholder: "Jedusor" .form-group.row.margin-bottom .col-3 = guest_form.label :email, class: "col-form-label text-dark" .col-9 = guest_form.text_field :email, class: "form-control rounded", placeholder: "nagano@inn.com" .form-group.row.align-items-center .col-6 = link_to "[ Cancel operation ]", admin_bills_path, class: "text-info" .col-6.text-right = form.submit "Send", class: "btn btn-outline-success btn-lg"
A guest can have multiple bills, but a bill can only have one guest. Account registration is not a question for now, it's just there to serve some record purposes. This is just an exercise, so there is no real world deployment. Still, I need to go through that step.
https://stackoverflow.com/questions/65784584/nested-form-in-rails-cant-create-and-associate-a-parent January 19, 2021 at 10:05AM
没有评论:
发表评论