0
사용자가 게시물을 만들 수 있습니다. 게시물에 댓글이 있습니다. 댓글은 사용자와 게시물 모두에 속해야하지만 반드시 게시물을 만든 사용자는 아닙니다.세 모델 간 has_many 관계에 id 설정
class User < ActiveRecord::Base
has_many :posts
has_many :comments
end
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
그렇다면, 보장하기위한 가장 좋은 방법은 무엇 :
user.comments.new
호출 할 수없는이 모델에 가장 좋은 방법은 다음과 같다. 나는 모든 새로운 포스트가 그들이 연관되는post
을 사용하여 창조되기를 바란다.- 적절하게 설정 주석을 작성하는 사용자의
id
에게 그렇지 않으면
post.comments.new
를 호출,이 관계를 모델링 할 수있는 더 좋은 방법은 무엇입니까?
모델 구조를 확인해 주셔서 감사합니다. 내 컨트롤러에서 그런 것을 할 계획 이었지만 "레일 방식"등으로 간주되었는지 확인하고 싶었습니다. 나는 user.comments.new를 호출하는 것을 불가능하게 할 필요는 없지만, 그것을 사용할 수있게 남겨 두었다 (즉, 쓸모 없게 만드는 원숭이 패치가 아닌) 괜찮은 것으로 간주되었다. 다시 한번 감사드립니다. –
예, 그냥두고도 괜찮습니다. 또한 새로운 액션이나 생성 액션에서'user.comments.new'를 사용하고 있습니까? 일반적으로 연관에서 객체를 만들 때는'new' 대신'build'를 사용해야합니다. 최근의 레일즈 버전에서는 두 가지 모두 작동하지만'build'는 객체를 게시물의 주석 컬렉션에 추가하고이를 메모리에 유지합니다. 모든 세부 사항에 대해 확실하지 않으면 Google에서 차이점을 검색하고 직접 결정할 수 있습니다.) – Robin
오른쪽 - 관계와 관련하여
new
과build
의 차이점을 알고 있습니다. 다시 한 번 감사드립니다. –