hyperstack-org / hyperstack-org/hyperstack

Missing inverse of has_many :though not detected

未關閉
#298 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
bug
主要語言
JavaScript
星號
538
分支
41
PR 合併指標
30 天內沒有已合併 PR

描述

consider

```ruby
class Physician < ActiveRecord::Base
has_many :appointments
has_many :patients, through: :appointments
end

class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end

class Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, through: :appointments
end
```

now if we define `Physician#patients` as `has_many :patients` (i.e. without the through) and then do this:

```ruby
old_physician = Physician.find_by_name('Foo')
new_patient = Patient.new(name: 'new guy')
appt = Appointment.new(physician: old_physician, patient: new_patient)
```

we would find on the server that

```ruby
new_patient.physicians
```

is `[]`

but on the client the list is empty. So it seems that Rails is inferring (or not even caring about) the missing inverse `has_many though:` on `Physician` (since we are not accessing it), but hyperstack is failing for some reason.

Of course if we can infer the relationship (per Rails) that is great, but at least there should be a warning or error so you can fix it.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。