내 Ruby on Rails 프로젝트에서 나는 사용자 모델과 콘텐츠 모델을 가지고 있습니다.Ruby on Rails에서 재생 목록 개념을 구현하는 방법
A 사용자 has_many :contents
및 내용 belongs_to :user
.
이제 재생 목록 아이디어를 만들고 싶습니다. 두 개 이상의 재생 목록이 있으며 각 콘텐츠에는 순서에 따라 일부 콘텐츠가 있습니다. 현재 사용자가 재생 목록을 소유했는지 여부는 중요하지 않으며 일반적입니다.
재생 목록은 사용자와 관련성이 없습니다. 그들은 시스템에 의해 소유 된 일반 일 것이다. playlist_id:integer content_id:integer order:integer
:
나는이 솔루션은 이러한 속성을 가진 모델 재생 목록 다른 테이블에있는 같이 무언가를 할 것이라 생각합니다. 하지만 정말로이 새로운 관계에 모든 MVC 부품을 만들어야합니까? 나는 레일 협회에 보면서
, 나는 혼란있어 나는이 작업을 수행하는 방법을 모르는, 심지어 어떻게를 만드는 내용 및 재생 목록 또는 두 가지 모두에 has_and_belongs_to_many
을 사용하여 을 통해 속성을 사용하는 경우 새로운 관계.
누군가가 나를 도울 수 있다면 기쁠 것입니다. 알다시피, 저는 약간 혼란 스럽습니다.
이class User < ActiveRecord::Base
...
has_many :contents
has_many :playlists
has_many :playlisted_contents, :through => :playlists
...
end
class Playlist < ActiveRecord::Base
...
has_many :contents
...
end
class Content < ActiveRecord::Base
...
belongs_to :user
belongs_to :playlist
...
end
내가 거기에 시작하고, 당신이 원하는대로 행동하는 것 있는지 확인하기 위해 몇 가지 테스트를 작성하는 것 :이 같은 추측하고있어
수행 : 당신은 여기 (포크, 클론, 당신이 원하는 무엇이든) 볼 수 있습니다 http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
사용자가 재생 목록을 통해서만 콘텐츠에 액세스하나요? 그렇다면'through '가 당신이 원하는 것일 수 있습니다. 그러나 사용자가 재생 목록에없는 콘텐츠에 액세스 할 수 있어야한다면'through '가 제한 될 수 있습니다. – rdnewman
사용자는 모든 내용에 액세스 할 수 있습니다. 재생 목록의 유일한 목표는 JSON으로 다른 컴퓨터의 JavaScript 파일로 전달되는 주문한 콘텐츠를 갖는 것입니다. 사용자 액세스를 제한하기 위해 생성되지는 않습니다. –
우리가 다이어그램을 작성했다면 원하는 것은 무엇입니까? a) 사용자 <-> 내용; b) 사용자 <-> 재생 목록; (c) 재생 목록 <-> 콘텐츠, 맞습니까? (여기서 "<->"은 어떤 종류의 연결을 의미합니다.) – rdnewman