Howdy,
I’ve run into a bit of a roadblock and am wondering how to best handle it.
Currently I have a User schema setup with a has_many :favorite_books
association. Each of these books have a ranking
field. Maybe I’ve missed it, but I don’t see a way to have user.favorite_books
always return them ordered according to their ranking.
I know I can order this with an Ecto query, however, as an example, when displaying them in a nested form using inputs_for
I’d like the favorite books to be rendered there by their ranking too.
Thanks for any help.
Ordering it via the query or via Enum.sort_by/2
or so are the ways that I’d do it, opting for the former when possible.
How would that look? Would you override it via the query when the favorite_books
are preloaded for the User before being set in a changeset for the form?
If the books can be globally ordered and they are not limited unless using a more detailed query then sure. If the amounts are low then joining it would be even better. Honestly I never preload, I just do another query then join them myself as I generally always want something specially done, so I just never go in the habit of calling preload manually… ^.^;
1 Like
Thank you for your help with this I had it in my head that I needed to pass the sorted favorite_books
into inputs_for
. I’m just doing the sorting when querying for them and it is now working.
2 Likes