Hi Andrew,

Afraid I'm not a Rails member, but I have been working on a couple
caching-related bugs in Rails as of late. The behavior you're describing
looks buggy, but I'm not quite able to replicate the issue from the example
code you provided, so I'm having trouble understanding exactly where the
discrepancy between Rails 5.2 and 6 is coming from. Would you be able to
provide a failing executable test case, or explain in more detail the
circumstances which trigger the behavior you're experiencing?

If useful, here's an executable test case I wrote as a starting point:
https://gist.github.com/alipman88/d499739a466f3e6b6746eeccfa567f9a

(It may be practical to open an issue via GitHub and continue conversation
there, moving forward.)

On Mon, Dec 2, 2019 at 8:38 PM Andrew Kaspick <akasp...@gmail.com> wrote:

> Hello,
>
> I've found a regression in Rails 6 while upgrading my Rails 5.2 app that
> I'm sure is not correct behavior but I'd like a core member to confirm or
> not before I create a PR for it.  The root of the problem lies in the
> association cache in the internals of ActiveRecord.  The example below is
> the root of a more complex issue in my app, but the following is as basic
> as I can get to show the issue.
>
> class Customer
>   has_many :appointmentsend
> class Appointment
>   belongs_to :customerend
>
> *Example that works in Rails 5.2*
>
> a = Appointment.new customer_id: @customer.id
> a.association(:customer).reader # returns @customer
>
> *Example that doesn't work in Rails 6.0*
>
> a = Appointment.new customer_id: @customer.id
> a.association(:customer).reader # returns nil
>
> *Example that works in both Rails 5.2 and 6.0* (note the association is
> set without the id)
>
> a = Appointment.new customer: @customer
> a.association(:customer).reader # returns @customer
>
> So is the example that doesn't work in Rails 6.0 a bug?  The example I
> provided isn't something you'll see in a Rails app, but Rails internals
> uses the association cache and if this is a bug, then fixing this would fix
> other potential issues.  Again, I found this issue due to a regression in
> my code with autosaved associations that I was setting via a foreign key
> parameter (ie. customer_id).
>
> Andrew
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-core+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-core/CAEUKiYHoddw6NySuH5sZ3GdOt-G4L3SsTfKUfcQioJHOnnrQ6Q%40mail.gmail.com
> <https://groups.google.com/d/msgid/rubyonrails-core/CAEUKiYHoddw6NySuH5sZ3GdOt-G4L3SsTfKUfcQioJHOnnrQ6Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-core/CAEJZ43hyY46Cn4Ur4-UtiO9C_d6KWgih-YDPcCF7k5UKe_N-9w%40mail.gmail.com.

Reply via email to