Hi. I’m building an app and I have “posts” model with associated “votes”.
My migration for the votes is:
defmodule DummyApi.Repo.Migrations.CreateVotes do
use Ecto.Migration
def change do
create table(:votes) do
add :book_id, references(:posts, on_delete: :delete_all)
add :user_id, references(:users, on_delete: :delete_all)
timestamps()
end
create unique_index(:votes, [:post_id, :user_id])
end
end
And my votes schema is:
defmodule DummyApi.FeedBack.Vote do
use Ecto.Schema
import Ecto.Changeset
alias DummyApi.Feedback.Post
alias DummyApi.Accounts.User
@required_fields [:post_id, :user_id]
schema "votes" do
field :post_id, :id
field :user_id, :id
belongs_to :users, User
belongs_to :posts Post
timestamps()
end
@doc false
def changeset(vote, attrs) do
vote
|> cast(attrs, [])
|> validate_required(@required_fields)
end
end
When I try to get a vote record using the FeedBack context of my app I get this:
** (Postgrex.Error) ERROR 42703 (undefined_column) column v0.users_id does not exist
query: SELECT v0."id", v0."post_id", v0."user_id", v0."users_id", v0."posts_id", v0."inserted_at", v0."updated_at" FROM "votes" AS v0 WHERE (v0."id" = $1)
hint: Perhaps you meant to reference the column "v0.user_id".