Trong Lịch thi đấu các tài liệu liên quan (http://api.rubyonrails.org/classes/Fixtures.html) họ cung cấp các ví dụ sau đây của việc sử dụng tài liệu tham khảo nhãn cho các hiệp hội:Trong thử nghiệm đơn vị Rails, làm thế nào tôi có thể có được một người dùng fixture để tải hồ sơ liên quan của nó?
### in pirates.yml
reginald:
name: Reginald the Pirate
monkey: george
### in monkeys.yml
george:
name: George the Monkey
pirate: reginald
Vì vậy, sau thắng của mình, tôi có một mô hình người dùng mà has_one: Hồ sơ, một mô hình hồ sơ mà belongs_to: người sử dụng, và cố gắng để thiết lập đồ đạc mỗi tấm gương của họ:
### in users.yml
reginald:
id: 1
login: reginald
### in profiles.yml
reginalds_profile:
id: 1
name: Reginald the Pirate
user: reginald
(Lưu ý: kể từ hiệp hội của tôi là một chiều, người dùng cố định không có một "hồ sơ: reginalds_profile" hiệp hội - đặt nó trong những nguyên nhân một lỗi vì bảng SQL không có thuộc tính profile_id.)
Vấn đề là, trong bài kiểm tra đơn vị của tôi, mọi thứ dường như tải đúng, nhưng người dùng (: reginald) .profile luôn là không. Tôi đang thiếu gì?
Tôi nghĩ rằng tôi có thể đã tìm ra nó thông qua thử nghiệm và lỗi ... nhưng tôi vẫn muốn xem nếu ai đó có thể xác minh những gì tôi đã làm sai. Không phải là một fan hâm mộ của các giải pháp thử và lỗi. – MikeJ
bạn đã làm gì để khắc phục sự cố? – cbrulak
Tôi nhận thấy trong ví dụ của tôi sự khác biệt chính là tôi đặt ID của đồ đạc bản thân mình thay vì để cho Rails đặt chúng (thói quen cũ, được sử dụng Rails kể từ 1.x). Khi tôi lấy ra các ID nó hoạt động, nhưng tại sao? – MikeJ