I want to use custom primary key for a table, and referencing that table in other table.
But i got rails PG::UndefinedColumn: ERROR:  column "id" custom column  error with my code
schema.rb
  create_table 'memberships', id: false, primary_key: :rank, force: :cascade do |t|
    t.string 'rank'
    t.integer 'discount_rate'
    t.datetime 'created_at', precision: 6, null: false
    t.datetime 'updated_at', precision: 6, null: false
  end
  create_table 'members', force: :cascade do |t|
    t.references :membership, index: true, foreign_key: { on_delete: :cascade }
    t.string 'name'
    t.datetime 'created_at', precision: 6, null: false
    t.datetime 'updated_at', precision: 6, null: false
  end
membership.rb
class Membership < ApplicationRecord
  has_many :members, foreign_key: :membership_rank
  validates :rank, uniqueness: true
end
member.rb
class Member < ApplicationRecord
  belongs_to :membership
  validates :name, length: { maximum: 30 }, uniqueness: true, presence: true
end  
I checked on rails c and found that my members are created with membership_id = 0.
How can i fix my code for my member table to reference membership table's rank column?
====
Rails + Postgres Relation Issue With Custom Foreign Key
Specifying column name in a "references" migration
I searched on google, but these kind of answer not worked on my code.
Thanks for all advice.
 
    