我有一个架构,belongs_to
3个不同的记录,但每个记录都是可选的。
schema "record_one" do
belongs_to :record_two, RecordTwo
belongs_to :record_three, RecordThree
belongs_to :record_four, RecordFour
timestamps()
end
我知道一种简单的方法就是将每个字段设置为:binary_id
字段,并像在其他任何可选字段中一样在记录ID中传递,但是我希望利用Ecto的关联。 >
据我了解,我们需要记录中的一个结构以建立/放置关联,但是如果我在控制器中未收到记录的ID来获取该结构,我将通过什么?
我想出的一个可能的解决方案是创建一个函数,该函数可以映射参数并在参数存在的情况下构建变更集。但是我不确定是否有更简单的使用Ecto的口才能够为我做到这一点?
或者当关系是可选的并且使用:binary_id
更好时,以这种方式使用Ecto的关联甚至有意义吗?