Comments (4)
That all sounds good to me. I vote calling it logidze_versions
instead of disabling it by default. You can always just do
def arbitrary_versions_attr
logidze_versions
end
and so no custom syntax is required.
from logidze.
Nope, there is no API for that.
Do you have an idea how it could look like? And what is your use case?
from logidze.
Something like post.versions
would be fine. It could return an array with the original as the first element and then all subsequent versions in the order they were created.
I host a blog and need to list all revisions to a post with word-based diffs.
from logidze.
It could return an array with the original as the first element and then all subsequent versions in the order they were created
That's an interesting question whether the current version should be included or not
And I'm thinking of having an enumerator instead of returning an Array right away (since created many records could affect performance). Something like this:
post.versions #=> Enumerator
# you can use take to return all
post.versions.take
# or you take a few or call any Enumerable method
post.versions.take(2)
post.versions.find do
_1.title == "old title"
end
# we can also add options
post.versions(reverse: true) # from older to newer
post.versions(include_self: true) # return self as the first one (default) or the last one record (if reverse: true)
And we should either use a less common name, say, post.logidze_versions
or make this feature disabled by default and allow to configure the name. For example:
class Post < ApplicationRecord
# add #versions method
has_logidze versions_accessor: true
# use a custom name
has_logidze versions_accessor: :log_versions
end
WDYT? Am I missing something?
from logidze.
Related Issues (20)
- Add Logidze.with_responsible! (block-less version)
- Logidze with Ruby 3.0 is throwing argument errors. HOT 2
- `rails destroy logidze:model MyModel` does not delete migration file HOT 2
- Activerecord table_name_prefix or table_name_suffix are not honored HOT 3
- Tracking changes on JSONB column error
- Association versioning with ignore_log_data and at(version: ) doesn't return expected results HOT 5
- Partition-friendly logging (triggers) HOT 3
- JSONB column and switch_to! with append: true HOT 2
- PG::UndefinedFunction: ERROR: function hstore(model_name) does not exist HOT 1
- Meta per request HOT 1
- Logidze.ignore_log_data_by_default causing db:migrate errors HOT 2
- Responsible from different sources HOT 3
- Associations versioning - accessing versions with `at(version: #)` HOT 2
- How to tell logidze about a new column HOT 8
- GlobalID support for metadata
- `responsible_id` is not updated on relation with `touch: true` HOT 6
- reload_log_data doesn't work when used with acts_as_paranoid and deleted records HOT 2
- docs: logdize cannot set session meta data when using a connection pool HOT 1
- How can I get the last 100 versions of a model? regardless of the record HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from logidze.