title: Foreign key name for `many_to_many` association in Ecto
body: <p>Here is a question for <code>many_to_many</code> association. The error I’m getting is</p>
  
  <pre><code>INSERT INTO "qbinders" ("title","typecode","inserted_at","updated_at","id") VALUES ($1,$2,$3,$4,$5) ["Math", "Jim1000", {{2017, 4, 1}, {15, 4, 47, 827009}}, {{2017, 4, 1}, {15, 4, 47, 843348}}, &lt;&lt;68, 1
  49, 156, 219, 153, 214, 65, 63, 179, 141, 252, 147, 221, 247, 41, 143&gt;&gt;]
  [debug] QUERY OK db=0.9ms
  commit []
  ** (Postgrex.Error) ERROR 42703 (undefined_column): column q2.qbinders_id does not exist
  </code></pre>
  
  <p>in running</p>
  
  <pre><code>qbinder_map = %{ title: "Math", typecode: "Jim1000"}
  changeset = Qbinders.changeset(%Qbinders{}, qbinder_map)
  qbinder = Repo.insert!(changeset) |&gt; Repo.preload(:qbooks)
  
  qbook_list = 
    %Qbooks{ title: "Algebra1"}
  qbook = Repo.insert!(qbook_list) |&gt; Repo.preload(:qbinders)
  
  changeset = Ecto.Changeset.change(qbinder) 
              |&gt; Ecto.Changeset.put_assoc(:qbooks, [qbook_list])
  Repo.update!(changeset)
  </code></pre>
  
  <p>In postgres, the join table looks like</p>
  
  <pre><code>CREATE TABLE qbook2qbinder
  (
    qbook_id uuid,
    qbinder_id uuid,
    qbook_order integer,
    inserted_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone NOT NULL,
    CONSTRAINT qbook2qbinder_qbinder_id_fkey FOREIGN KEY (qbinder_id)
        REFERENCES qbinders (id) MATCH SIMPLE
        ON UPDATE NO ACTION ON DELETE NO ACTION,
    CONSTRAINT qbook2qbinder_qbook_id_fkey FOREIGN KEY (qbook_id)
        REFERENCES qbooks (id) MATCH SIMPLE
        ON UPDATE NO ACTION ON DELETE NO ACTION
  )
  </code></pre>
  
  <p>And the model is</p>
  
  <pre><code>defmodule Project.Qbinders do
    use Project.Web, :model
  
    @primary_key {:id, :binary_id, autogenerate: true}
  
    schema "qbinders" do
  
          field :title, :string
          field :reward, :string
  
          many_to_many :qbooks, Project.Qbooks, join_through: "qbook2qbinder"
      timestamps
    end
  </code></pre>
  
  <p>Why does Ecto look for <code>qbinders_id</code> instead of <code>qbinder_id</code>? How do I set it to <code>qbinder_id</code>?</p>