mongoid / mongoid-slug

Generates a URL slug/permalink based on fields in a Mongoid-based model.
https://github.com/mongoid/mongoid-slug
MIT License
492 stars 164 forks source link

#slug should not default to _id.to_s #261

Open johnnyshields opened 3 years ago

johnnyshields commented 3 years ago

#slug should not default to _id.to_s. This is inconsistent with the rest of the gem:

dblock commented 3 years ago

Ooooof I know for sure that Artsy relies on the fact that slugs default to ID, and aren't nil. This is a massive breaking change, isn't it?

johnnyshields commented 3 years ago

@dblock we should make this behavior configurable. As noted above, its inconsistent. A "never touched" new model will have slug default to ID, but once you call clear_slug! the slug value becomes nil. I can investigate further on a way to preserve the behavior for Artsy.

dblock commented 3 years ago

@dblock we should make this behavior configurable. As noted above, its inconsistent. A "never touched" new model will have slug default to ID, but once you call clear_slug! the slug value becomes nil.

I actually don't think it's inconsistent, but can be misinterpreted. Don't you want to clear the slug on clear_slug!? Maybe we need a clear_slug_and_set_to_default!?

I can investigate further on a way to preserve the behavior for Artsy.

Sounds good. It should be backwards compatible or we need to bump major and document the breaking change, all while allowing the functionality to exist.