Rails - Select records where active storage link does not exist
I am using rails active storage and I want to know if it is possible to create a scope where i can pull users who are missing the profile image
Suppose I have the following User
model
class User < ApplicationRecord
has_one_attached :avatar
end
I know I can check if the image is linked with the object via following
user.avatar.attached?
But what if I want to pull those users from database who are missing the avatar? I am sure there is a better way than pulling all users and looping through them to find the users who have no avatar
Any tip will be really appreciated.
ruby-on-rails rails-activestorage ruby-on-rails-5.2
add a comment |
I am using rails active storage and I want to know if it is possible to create a scope where i can pull users who are missing the profile image
Suppose I have the following User
model
class User < ApplicationRecord
has_one_attached :avatar
end
I know I can check if the image is linked with the object via following
user.avatar.attached?
But what if I want to pull those users from database who are missing the avatar? I am sure there is a better way than pulling all users and looping through them to find the users who have no avatar
Any tip will be really appreciated.
ruby-on-rails rails-activestorage ruby-on-rails-5.2
add a comment |
I am using rails active storage and I want to know if it is possible to create a scope where i can pull users who are missing the profile image
Suppose I have the following User
model
class User < ApplicationRecord
has_one_attached :avatar
end
I know I can check if the image is linked with the object via following
user.avatar.attached?
But what if I want to pull those users from database who are missing the avatar? I am sure there is a better way than pulling all users and looping through them to find the users who have no avatar
Any tip will be really appreciated.
ruby-on-rails rails-activestorage ruby-on-rails-5.2
I am using rails active storage and I want to know if it is possible to create a scope where i can pull users who are missing the profile image
Suppose I have the following User
model
class User < ApplicationRecord
has_one_attached :avatar
end
I know I can check if the image is linked with the object via following
user.avatar.attached?
But what if I want to pull those users from database who are missing the avatar? I am sure there is a better way than pulling all users and looping through them to find the users who have no avatar
Any tip will be really appreciated.
ruby-on-rails rails-activestorage ruby-on-rails-5.2
ruby-on-rails rails-activestorage ruby-on-rails-5.2
asked Nov 13 '18 at 11:30
SaadiaSaadia
451519
451519
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can try to join and get all the user with avatar and subtract them to all users like that:
@no_avatar_users = User.all - User.joins(:avatar)
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280084%2frails-select-records-where-active-storage-link-does-not-exist%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can try to join and get all the user with avatar and subtract them to all users like that:
@no_avatar_users = User.all - User.joins(:avatar)
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
add a comment |
You can try to join and get all the user with avatar and subtract them to all users like that:
@no_avatar_users = User.all - User.joins(:avatar)
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
add a comment |
You can try to join and get all the user with avatar and subtract them to all users like that:
@no_avatar_users = User.all - User.joins(:avatar)
You can try to join and get all the user with avatar and subtract them to all users like that:
@no_avatar_users = User.all - User.joins(:avatar)
edited Nov 13 '18 at 13:14
answered Nov 13 '18 at 12:08
Sid BiffiSid Biffi
405614
405614
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
add a comment |
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Thanks but I dont think this will work as avatar is not a column in database
– Saadia
Nov 13 '18 at 12:11
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
Yes you're right sorry, i updated the answer
– Sid Biffi
Nov 13 '18 at 13:14
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280084%2frails-select-records-where-active-storage-link-does-not-exist%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown