I stumbled upon a form that is similar to the following (changed some names):
<%= form_for @changeset, @action, [id: "product_form"], fn f -> %>
...
<%= select(f, :material_id, @materials, prompt: "Pick material") %>
...
<%= select f, :order_id, @orders, class: "add-bottom-margin", prompt: "Pick order" %>
...
<% end %>
I noticed that in development the two selects have ids respectively "product_material_id"
and "product_order_id"
. In staging however (and production, they use the same config but have different environment variables), they have ids "product_form_material_id"
and "product_form_order_id"
.
The same EEx template is used in both cases and there are no conditions in it that have branching logic depending on the environment.
Why would different IDs be generated in this case? In development I have phoenix_html
version 2.14.2 and in staging it is 2.14.3 but as far as I can see from the changelog between the two there are no big changes.
It seems like I might be missing something fundamental and this is a relatively new code base to me, but this problem has been baffling me all day and I have not been able to find what it could be related to. I manually defined the IDs in the form in the end, but I am curious as to why this difference occurred in the first place.