Chris Oliver

Joined

292,760 Experience
93 Lessons Completed
296 Questions Solved

Activity

Check out what DMARC is, it's the reason your emails are being blocked. https://dmarc.org/

Basically, they're not allowing these emails because they know they didn't originate from the correct server(s). That's what an attacker might do to spoof emails for phishing and things and they think you're doing the same thing.

Sendgrid's servers aren't used for mail.ru, so you can't send an email from there. If you want to send an email from a mail.ru address, you'd have to do it with mail.ru's SMTP servers. Same with GMail.

Generally, you'll want to use your own domain for Sendgrid and other transactional email providers. That's what they're designed for. Make sense?

It's definitely stable. GitHub and Shopify are often running these versions (or even newer) in production. Rails 6 has been out for many months and 6.0.3 is just a bugfix release to fix some minor issues.

Posted in Cookie Replay Attack

Posted in Import into administrate?

@Tommy, importing images from CSVs would be as simple as assigning the image to the record using the URL from the CSV.

For example, Shrine's remote url plugin would be all you'd need. https://github.com/shrinerb/shrine/blob/master/doc/plugins/remote_url.md

If your uploader doesn't support url uploads, you'd need to download the image temporarily using like OpenURI in Ruby and then assign the file object to the record before saving.

Posted in Group Chat with ActionCable: Part 6 Discussion

I've been recording an update series in Rails 6 that should be out soon. :D

Posted in Default Order of Associated Model Collection?

I know right?! Seriously amazing people here. Welcome to the group! 🤓

Posted in Default Order of Associated Model Collection?

I think it's all an implementation detail of the database you're using. From https://www.postgresql.org/docs/current/queries-order.html

A particular output ordering can only be guaranteed if the sort step is explicitly chosen.

You've probably just gotten lucky with SQLite, etc, in the past. 😅

I think it's reasonable to include the sort order in your tests that way you can make sure both result sets are matching.

Or use something like difference which would compare for the same items regardless of sort order. https://ruby-doc.org/core-2.6/Array.html#method-i-difference

Really depends on what you're trying to verify in the tests. If the order doesn't matter, no difference between the two arrays would be a good alternative assertion.

Posted in Default Order of Associated Model Collection?

I believe Postgres preserves insertion order for simple queries, but when you start getting into more complex where conditions and things it will not. Always good to specify an order if you're expecting a certain order in your results. 👍

Posted in Introduction to Stimulus Reflex Discussion

Not quite yet. For example, I'm trying to build a Trello clone with Stimulus Reflex right now. Everything works great, however when I try to broadcast updates to other browsers, that's going to blow away any editing the other users might be doing. I'm talking with Nate tomorrow about it so hopefully I will have some answers. For right now, it seems real easy if you're just wanting realtime updates for a single user.

Posted in Introduction to Stimulus Reflex Discussion

Exactly. Serialize the whole form and send it over to SR. Stimulus controller would make that the easiest, naturally.

The optimism gem is already built to do that btw. https://github.com/leastbad/optimism

Posted in How to use Action Mailbox in Rails 6 Discussion

Nah, you'd just add those queues to Sidekiq, delayed job, etc.

Make sure your background workers are processing the action_mailbox_routing and action_mailbox_incineration queues.

Hey Ted,

Honestly, I'd just recommend using stimulus-flatpickr as it will do the setup/teardown automatically for you when Stimulus connects. Makes for very simple Turbolinks compatibility.

As for just fixing the flatpickr instance when it renders cache, you're exactly right. That's what you'd want. It will make sure it tears down before Turbolinks caches the HTML and that's exactly what you need.

Stimulus makes it a piece of cake, so I've started moving to creating Stimulus components that do the setup/teardown rather than listening to turbolinks events. It works with Turbolinks, with the additional benefit that it will also setup/teardown whenever you dynamically add HTML to the page from an AJAX request or websocket which is really nice.

Posted in Group Chat with ActionCable: Part 4 Discussion

And you can definitely configure it to only create the websocket connection on the page you want like what you're describing. Just gotta write your JS to detect the page and connect when it's the correct one.

Posted in Group Chat with ActionCable: Part 4 Discussion

Websockets are just designed to be a persistent connection. As you're browsing the site the connection can stay idle until you need it. GitHub, for example, will leave the websocket connection open as you browse but only subscribe to receive events when you view or leave a Pull Request or Issue.

Posted in Group Chat with ActionCable: Part 4 Discussion

ActionCable should be on every page and always connected. You don't want to disconnect and reconnect constantly.

You simply want to ignore updates if they aren't relevant to the page you're looking at.

Posted in Get Email from DataBase for creating newsletter

Check out the Actionmailer guides: https://guides.rubyonrails.org/action_mailer_basics.html

If you had a LeadMailer that sent a new_lead email, it would be:

LeadMailer.with(lead: @lead).new_lead.deliver_later

Posted in Stripe payments course getting out of date

👍 The course will definitely help explain how all the payments stuff works better. Especially now that it's crazy complicated with SCA.

I should make a quick tutorial on one-time payments with Jumpstart Pro, because that's what I'm doing for selling the Jumpstart Pro licenses after all. I'll try and squeeze a screencast in today if I can.

Posted in Stripe payments course getting out of date

@bradley Yeah, I redid the whole thing but turned it into a separate course: https://courses.gorails.com/payments-with-rails-master-class

Covers one-time payments with a shopping cart example and subscription billing, all of it SCA compatible.