PaperTrail
Slim
Our great sponsors
PaperTrail | Slim | |
---|---|---|
18 | 30 | |
6,693 | 5,271 | |
0.4% | 0.2% | |
5.9 | 7.8 | |
3 months ago | 27 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PaperTrail
-
historical data and "point in time" data modeling techniques, advice.
if the source (web) application makes their own audit tables. ex: our ruby on rails application uses the paper-trail gem
-
Best rails tools to automatically handle logging of things like all a user's actions, or changes to a record in a module - primarily for audit purposes.
Start with https://github.com/paper-trail-gem/paper_trail
-
Inventory/Sales Management module built on a Rails app - what would be the best way to "version" updates made against an SKU.
We use paper_trail for this
-
is there a gem for tracking adhoc rails console changes
I think you could use that in conjunction with the paper_trail gem, as /u/GreenCalligrapher571 mentioned, which is also a good suggestion. As an additional note, when changing records in production while using the paper_trail gem, I suggest wrapping your database-mutating statements executed in the rails console within a whodunnit block, so PaperTrail.request(whodunnit: 'Dorian Marié') { widget.update name: 'Wibble' } or something rather than just widget.update name: 'Wibble'. Or, if you have some sort of issue-tracking / ticketing system, you could set the whodunnit value to the ticket number or whatever, and then anyone who wants to know why the records are in the state they're in can consult that ticket, which hopefully has additional relevant context.
-
History Tracking With Postgres
For a while we did this using the paper-trail gem. This was a very simple way to add a few lines of code to keep track of all of the changes made to an ActiveRecord model. But it came with one drawback. Every change to the data had to be done through ActiveRecord. There are often times when this makes an app vulnerable to a race condition. I’ll use a contrived example so as not to share any real code from our client’s app.
-
Adding soft delete to a Phoenix Commanded (CQRS) API
In most designs, this would probably not be possible unless a table tracking extension is being used in an ORM. Even with change tracking enabled through extensions like paper trail or Django simple history, it can be tricky to restore deleted entities. Object tracking would need to have been enabled before it is needed to ensure the data is still around to be restored.
- Looking for a Rails Gem that Audits Manual Database Changes
-
Temporality/time-travelling in DB with ActiveRecord?
Maybe you are looking for the papertrail gem? https://github.com/paper-trail-gem/paper_trail
- Looking for an observer gem
Slim
-
Building a syntax highlighting extension for VS Code
I spent a few days of my spare time building a VS Code extension that would bring better syntax highlighting for the Slim template language to the editor. I quite enjoyed most of the process so I’d like to share what I learned.
-
Rails 7.1 Released
I think they mean Server Side Rendering (normal rails controllers/views), and Slim is just the name of the templating engine. It's a little nicer than the default ERB. https://github.com/slim-template/slim
There's also SSR with react and other js frameworks, but I don't think that's what they meant.
-
How to build a website without frameworks and tons of libraries
I use something very similar on https://lunar.fyi and https://lowtechguys.com but I wouldn’t call this “simple” anymore.
They use Jinja templating, I prefer Slim (https://github.com/slim-template/slim#syntax-example) which has a more Pythonic syntax (there is plim [0] in Python for that)
I use Tailwind as well for terse styling and fast experimentation (allows me to write a darkMode-aware and responsive 100 line CSS in a single line with about 10 classes)
For interaction I can write CoffeeScript directly in the page [1] and have it compiled by plim.
I run a Caddy static server [2] and use Syncthing [3] to have every file save deployed instantly to my Hetzner server.
I use entr [4] and livereloadx [5] to rebuild the pages and do hot reload on file save. All the commands are managed in a simple Makefile [6]
———
You can already see how the footnotes take up a large chunk of this comment, this is not my idea of simple. Sure, the end result is readable static HTML and I never have to fight obscure React errors, but it’s a high effort setup for starters.
Simple for me would be: write markdown files for pages, a simple CSS for general styling (should be optional), click to deploy on my domain. Images should automatically be resized to multiple sizes and optimized, videos re-encoded for smaller filesize etc.
I have mostly implemented that for myself (https://notes.alinpanaitiu.com/How%20I%20write%20this%20blog...) but it feels fragile. I’d rather pay for a professional solution.
[0] https://plim.readthedocs.io/en/latest/
[1] https://github.com/FuzzyIdeas/lowtechguys/blob/main/src/rcmd...
[2] https://caddyserver.com/docs/command-line#caddy-file-server
[4] https://github.com/eradman/entr
[5] https://nitoyon.github.io/livereloadx/
[6] https://github.com/FuzzyIdeas/lowtechguys/blob/main/Makefile
-
Do Modern Programming Languages Have to Care About Line Length?
Checkout slim https://github.com/slim-template/slim it's a templating language
-
Hotwire Question - Controller Lifecycle
And this is what the HTML looks like (I'm using slim):
-
How to use View Transitions in Hotwire Turbo
The template renders the tag and inside it the link and the counter itself (the Slim template language and Tailwind styling are used here, hopefully the notation is sufficiently self-explaining):
-
Slim: A HTML Templating Language
In this part of the series, let's explore another popular templating language, Slim.
-
Pug: A HTML Templating Language
Templating languages are widely used in Web development and two of the most popular ones are Pug and Slim. In this series, we're going to learn the basics of these two and hopefully they would help improve your workflow further.
-
Template Engine with percent sign in Rails?
You may want to checkout slim I'v tried ERB, SLIM, and HAML and absolutely sware by slim it's very easy to use and saves a ton of typing compared to ERB.
-
Styling Simple Form forms with Tailwind
This config sets a ”medium“ font weight for our form labels by default. Now, suppose we want a specific input’s label to be bold instead, we might want to try the following naive approach (we’re using the Slim template notation here):
What are some alternatives?
Audited - Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.
Liquid - Liquid markup language. Safe, customer facing template language for flexible web apps.
Paranoia - acts_as_paranoid for Rails 5, 6 and 7
Haml - HTML Abstraction Markup Language - A Markup Haiku
Logidze - Database changes log for Rails
Hamlit - High Performance Haml Implementation
mongoid-history - Multi-user non-linear history tracking, auditing, undo, redo for mongoid.
Sanitize - Ruby HTML and CSS sanitizer.
ActsAsParanoid - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
Tilt - Generic interface to multiple Ruby template engines
Discard - 🃏🗑 Soft deletes for ActiveRecord done right
tachyons - Functional css for humans