hyperstack-org / hyperstack-org/hyperstack

Missing inverse of has_many :though not detected

Đang mở
#298 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
JavaScript
Star
538
Fork
41
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.