title: Ecto has_one without belongs_to in Phoenix
body: <p>I have a <code>Home</code> model which contains content for a home page such as <code>intro_copy</code>, <code>about_image</code> and <code>about_copy</code>.</p>
  
  <p>On the <code>Home</code> model, I’d also like to be able to feature 3 posts from my <code>Post</code> model using <code>has_one</code> relationship. Basically just linking them using an id.</p>
  
  <p>My <code>Home</code> schema looks like this:</p>
  
  <pre><code>schema "home" do
    field :intro_copy, :string
    field :about_copy, :string
    field :about_image, Image.Type
  
    has_one :post_1, Post
    has_one :post_2, Post
    has_one :post_3, Post
  
    timestamps()
  end
  </code></pre>
  
  <p>My <code>changeset</code> function looks like this:</p>
  
  <pre><code>def changeset(struct, params \\ %{}) do
    struct
    |&gt; cast_assoc(params, [:post_1, :post_2, :post_3])
    |&gt; cast(params, @required_fields, @optional_fields)
  end
  </code></pre>
  
  <p>Also, in my migrations I have the following lines being added to the <code>:home</code> table:</p>
  
  <pre><code>add :post_1_id, references(:posts)
  add :post_2_id, references(:posts)
  add :post_3_id, references(:posts)
  </code></pre>
  
  <p>Is there somewhere I’m obviously going wrong here?</p>