| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
attaching `::One`
Consider a model with `One` and `Many` attachments configured:
class User < ActiveRecord::Base
has_one_attached :avatar
has_many_attached :highlights
end
=== One Attachment
After attaching `One` attachment (`:avatar`), we can see that the associated
`_blob` record (`:avatar_blob`) still returns as `nil`.
user.avatar.attach(blob)
user.avatar_attachment.present? => true
user.avatar_blob.present? => false # Incorrect!
This is a false negative. It happens because after the attachment and blob
are built:
1. The record already has its `_blob` association loaded, as `nil`
2. the `::Attachment` is associated with the record but the `::Blob` only gets
associated with the `::Attachment`, not the record itself
In reality, the blob does in fact exist. We can verify this as follows:
user.avatar.attach(blob)
user.avatar_attachment.blob.present? => true # Blob does exist!
The fix in this change is to simply assign the `::Blob` when assigning
the `::Attachment`. After this fix is applied, we correctly observe:
user.avatar.attach(blob)
user.avatar_attachment.present? => true
user.avatar_blob.present? => true # Woohoo!
=== Many Attachments
We don't see this issue with `Many` attachments because the `_blob` association
is already loaded as part of attaching more/newer blobs.
user.highlights.attach(blob)
user.highlights_attachments.any? => true
user.highlights_blobs.any? => true
|
| |
|
| |
|
|
|
|
| |
overwrite previous attachments
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Add the ability to reflect on the attachments that have been defined using ActiveRecord::Reflection.
|
|
|
|
|
|
|
|
|
|
|
| |
Generated attachment getter and setter methods are created within
the model's `GeneratedAssociationMethods` module to allow overriding
and composition using `super`.
Includes tests for new functionality.
Co-authored-by: Josh Susser <josh@hasmanythrough.com>
Co-authored-by: Jamon Douglas <terrildouglas@gmail.com>
|
|\
| |
| | |
has_(one/many)_attached presence validation
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
[Matt Jones & George Claghorn]
|
| | |
|
|/ |
|
|
|
|
|
| |
There is concern that only blob are deleted depending on
the `before_destroy` definition order which throws abort.
|
|
|
|
|
|
| |
Explicitly declare inverse associations so ActiveStorage::Attachment touches the original record instance.
Closes #31542.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Permit creating a record and attaching files in a single step.
# Before:
User.create!(user_params.except(:avatar)).tap do |user|
user.avatar.attach(user_params[:avatar])
end
# After:
User.create!(user_params)
[Yoshiyuki Hirano & George Claghorn]
|
|
|
|
| |
Closes #31164.
|
| |
|
| |
|
|
|
|
|
| |
* For avoiding N+1 problem, added `with_attached_*` scope to
`has_one_attached` macro.
|
|
|
|
|
| |
* File.open("~/face.jpg") raise error:
`Errno::ENOENT: No such file or directory @ rb_sysopen - ~/face.jpg`
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
[Active Storage] `rubocop -a --only Layout/TrailingBlankLines`
|
| | |
|
| |
| |
| |
| |
| | |
Currently `"@active_storage_attached_#{name}"` in `define_method` is
evaluated every call. It is better to evaluate it only once.
|
|/
|
|
|
| |
* Use `+` instead of backquote.
* Remove escape from class to be link
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes following warnings:
```
test/models/variant_test.rb:11: warning: ambiguous first argument; put parentheses or a space even after `/' operator
lib/active_storage/attached/macros.rb:63: warning: instance variable @active_storage_attached_highlights not initialized
lib/active_storage/attached/macros.rb:25: warning: instance variable @active_storage_attached_avatar not initialized
```
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reasons for this commit are:
- uniformity with the other Rails libraries
- (possibly) behave better with respect to autoloading
- fix the index in the generated documentation
Before this commit, run `rake rdoc` generates this left sidebar
(ActiveStorage entries are indexed twice, both inside and outside the module):
<img width="308" alt="before" src="https://user-images.githubusercontent.com/10076/28939523-7c087dec-7846-11e7-9289-38ed4a2930cd.png">
After this commit, run `rake rdoc` generates this left sidebar:
(ActiveStorage entries are only indexed inside the module):
<img width="303" alt="after" src="https://user-images.githubusercontent.com/10076/28939524-7c090be0-7846-11e7-8ee5-29dfecae548e.png">
|
|
git-subtree-dir: activestorage
git-subtree-mainline: 0d58e7e478e79c2d6b2a39a4444d2a17a903b2a6
git-subtree-split: 3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58
|