Rails Foundation Contributing Member
Ruby on Rails consulting from engineers who work deep in Rails.
Saeloun helps teams modernize Rails applications, improve performance, untangle production issues, and ship product work with a senior Rails and React team in Boston and Pune.
- 599+
- engineering articles
- 2019
- founded in Boston
- Rails
- Foundation member
Latest Rails, React, and engineering articles
Field notes on framework changes, performance, upgrades, testing, and product engineering.
Ruby Data Class for Immutable Objects
The Data class helps define simple classes for value-alike objects that can be extended with custom methods.Rails 7 Fixes tsrange Timezone Bug
Earlier the tsrange/tstzrange column would throw a TypeError if a timezone was set in the application config.Rails 7.1 Job Generator --parent
Similar to the working of the model generator, the job generator now accepts the --parent option.Rails Adds SQLite :strict Option
SQLite can be configured to be strict to circumvent some of its quirks. Rails can now specify this in the default database.yml file.CSS overflow:clip and overflow-clip-margin
overflow: clip and overflow: hidden both do the same job of hiding content that overflows. However, overflow: clip also disables programmatic scrolling.Rails Validates Migration Options
Previously erroneous options were silently ignored in migration functions such as "create_table" or "add_column", now they raise an error.Rails assert_redirected_to Status Code
The assertion statement previous was only able to assert that the request was redirected, but not the status code.Rails ErrorReporting source Attribute
Subscribers can now filter error reports based on source, making it easier to ignore internal errors or focus on specific errors.Rails Requires active_storage.service
Developers are no longer presented vague errors when config.active_storage.service is not set. Instead a clear exception is raised.Rails Infinite Range in LengthValidators
Models that need to be validated for length can use infinite ranges in :in / :within options