Tôi có các lớp sau:Thuộc tính lồng nhau có thể được sử dụng kết hợp với thừa kế không?
- Dự án
- Person
- Person>Developer
- Person>quản lý
Trong mô hình Project
Tôi đã thêm những điều khoản sau đây:
has_and_belongs_to_many :people
accepts_nested_attributes_for :people
Và tất nhiên những điều khoản thích hợp trong lớp Person
. Làm cách nào để thêm Developer
vào một số Project
thông qua phương thức nested_attributes
? Sau đây không hoạt động:
@p.people_attributes = [{:name => "Epic Beard Man", :type => "Developer"}]
@p.people
=> [#<Person id: nil, name: "Epic Beard Man", type: nil>]
Như bạn có thể thấy type
thuộc tính được thiết lập để nil
thay vì "Developer"
.
lưu ý: thao tác này cho Rails 2.3, xem câu trả lời của tôi bên dưới cho Rails 3 – tokland
@tokland, tôi đã không truy cập câu hỏi này trong một thời gian. Tôi đã cập nhật câu trả lời của mình với giải pháp Rails 3. –
tuyệt vời. Tôi muốn viết một 'def self.attributes_protected_by_default' đơn giản, nhưng bất cứ điều gì. – tokland