[メモ] アソシエーション失敗 [未解決]


エラー概要

何回も同じエラーが出て前に進めないので、失敗した記述をメモ。
gift機能が実装できません。

やりたいこと
・giftsテーブルに値が保存される

実際のエラー(ブラウザにはエラーが出ません)

gifts_table.rb
class CreateGifts < ActiveRecord::Migration[6.0]
  def change
    create_table :gifts do |t|
      t.integer    :price,    null: false
      t.references :giver,    foreign_key: { to_table: :users }
      t.references :receiver, foreign_key: { to_table: :profiles }
      t.timestamps
    end
  end
end
gifts_controller.rb
class GiftsController < ApplicationController
  before_action :find_profile, only: [:gift_params, :new, :create]
  def new
    @gift = Gift.new
  end

  def create
    @gift = Gift.create(gift_params)
    binding.pry
    if current_user.save
      redirect_to root_path
    else
      render :new
    end
  end

  private
  def gift_params
    params.require(:gift).permit(:price).merge(giver_id: current_user.id, receiver_id: @profile.user_id)
  end

  def find_profile
    @profile = Profile.find(params[:profile_id])
  end
end

試したこと

アソシエーションの変更(何パターンか検証した)

gift.rb
class Gift < ApplicationRecord
  belongs_to :giver, class_name: 'User'
  belongs_to :receiver, class_name: 'Profile'
end
profile.rb
class Profile < ApplicationRecord

# 失敗した組み合わせ

 has_many :gifts, foreign_key: 'receiver_id'
 has_many :givers, through: :gifts, source: :receiver

#他にもたくさん失敗しましたが、忘れました

end
user.rb
class User < ApplicationRecord

# 失敗した組み合わせ

 has_many :gifts, foreign_key: 'giver_id'
 has_many :receivers, through: :gifts, source: :giver



end

ルーティングの変更

routes.rb
Rails.application.routes.draw do

  resources :profiles, only: [:new, :create, :show, :edit, :update] do
     resource :gifts, only: [:new, :create]
  end

    ↑↓ #どっちも失敗

routes.rb
Rails.application.routes.draw do

  resources :users do
    resource :gifts, only: [:new, :create]
  end
  resources :profiles, only: [:new, :create, :show, :edit, :update]

ずっと同じエラー(Receiverを入力してください)が発生します。