On model update nil column values become empty string
#119 opened on Dec 14, 2020
Repository metrics
- Stars
- (1,444 stars)
- PR merge metrics
- (Avg merge 1d 9h) (1 merged PR in 30d)
Description
First, thanks for the great gem! This has been a lifesaver for me and my team.
I do have a small issue. I am happy to do the work but unsure what is the best way to move forward.
When updating db records via rails_db, text fields with original nil values are changed to '' even when they are not updated. I have been digging into the code and I noticed this is kind of expected because simple_form cannot distinguish between an actual empty string and a nil value but unfortunately this is an issue for any column that has a unique index OR if there is any code that needs to do different things with '' and nil.
I can see 2 potential solutions to this
- Allow for more complex blacklisting or whitelisting of tables and specific columns. This would make these columns not show on the edit form and never override the values. The clear downside is that the user is forever limited to view or edit these columns
- Add better casting from
ActiveRecord::Base.connectionto an actual model and allow usage of things like https://github.com/rubiety/nilify_blanks - Override the
updateaction of the controller and clean up some params that are problematic when empty
If someone has experienced the same issue or has any idea it would be great to hear how they fixed this. Until this is solved we cannot use the edit function of the Rails_db 😢