John_Shelby
List as a reference to the same schema
Hi
,
Can I have a reference using the list of ids to that schema where the current reference is?
The way the application currently works is that a question can have an ancestor with a reference via id, and based on the answer in it, it is displayed. I now need to store a list of question ids using multi select instead of question id, and the ids from the list should reference the selected ancestors.
What should the given reference look like please, if it is possible to create it? So far my experience is only with the basic reference type and I can’t find a solution, thank you.
Current code with reference through one id:
Schema:
schema "assessment_questions" do
field :question, :string
field :temp_id, :string, virtual: true
.
.
.
belongs_to :ancestor_question,
MyApp.AssessmentPipelines.AssessmentPipeline.AssessmentQuestion
timestamps()
end
def changeset(assessment_question, attrs) do
assessment_question
|> Map.put(:temp_id, assessment_question.temp_id || attrs["temp_id"])
|> cast(attrs, [
:question,
.
.
.
:ancestor_question_id
])
.
.
.
end
Migration
def change do
alter table("assessment_questions") do
add :ancestor_question_id,
references(:assessment_questions, on_delete: :nothing, type: :binary_id)
end
end
Thanks for any help.
Marked As Solved
al2o3cr
What does the result you’re looking for look like in plain SQL? It can be easier to put together the necessary Ecto parts if you know where you’re heading.








