class User < ActiveRecord::Base
has_many :boxes
has_many :books
end
class Box < ActiveRecord::Base
belong_to :user
has_many :books
end
class Book < ActiveRecord::Base
belongs_to :user
belongs_to :box
end
그래서 새로운 상자를 생성하고 상자에 USER_ID를 부착, 작동혼란이
>> u = User.first
>> u.boxes.build(:height => 3, :width => 1, :length => 4)
>> u.save
그럼 내가 더 나아가 이것을 시도하십시오. box_id가 설정되었지만 책의 user_id가 설정되지 않았습니다.
>> u.boxes.first.books.build(:title => 'Reading is fun')
>> u.save
나는 여기 꽤 기본적인 개념을 놓치고있는 것처럼 보입니다. 여기 build
방법을 왜냐하면
u.boxes.first.books.build(:title => 'Reading is fun', :user_id => u.id)
을해야
이것은 많은 의미가 있습니다. 나는 그것이 has_many : with 관계로해야한다고 느꼈다. – mkly
좋아, 아무리해도 그 책을 볼 수 없기 때문에 사용자 아이디를 책에 전달해야 할 것입니다. 이것은 매우 도움이됩니다. 고맙습니다. – mkly
': through'을 사용하지 않는 경우에만. ': through'를 사용한다면,'books' 테이블은'user_id' 컬럼을 필요로하지 않고 모든 것이'Box' 모델을 통해 자동으로 설정됩니다. – Chowlett