| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Assigning to a collection of attachments appends rather than replacing, as in 5.2. Existing 5.2 apps that rely on this behavior will no longer break when they're upgraded to 6.0.
For apps generated on 6.0 or newer, assigning replaces the existing attachments in the collection. #attach should be used to add new attachments to the collection without removing existing ones.
I expect that we'll deprecate the old behavior in 6.1.
Closes #36374.
|
|
|
|
| |
attachment
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|