1

我正在做一个项目,试图实现一个功能:它是一个包含视频对象的播放列表

我的联想

 class Video < ActiveRecord::Base 
    belongs_to :playlist
  end 

  class User < ActiveRecord::Base
    has_many   :playlists
  end 

  class Playlist < ActiveRecord::Base
    has_many   : videos
    belongs_to :user
  end

我有一个迁移,它将创建播放列表作为 CRUD 的资源

我的困境在这里,我不太清楚如何在控制器级别实现它,以便能够将视频对象添加到用户创建的播放列表。在我的思考过程中,用户创建的播放列表应该是一个数组,在我的播放列表模型中,我将添加一个方法来检索视频并将播放列表范围限定为 current_user,最后将其推送到新数组并保存。但我我试图从教程过渡到从头开始编写功能。

附言。我不知道accepted_nested_attributes 是否也是实现这一点的真实或可行的途径?任何帮助将不胜感激。

4

1 回答 1

1

您的型号:

class Video < ActiveRecord::Base 
  belongs_to :playlist
  has_one :user, through: :playlist
end

class User < ActiveRecord::Base
  has_many :playlists
  has_many :videos, through: :playlists
end 

class Playlist < ActiveRecord::Base
  has_many   :videos
  belongs_to :user
end

您的路线:

resources :users do
  resources :playlists do
    resources :videos
  end
end
# the generated routes:
# /users/<user_id>/edit
# /users/<user_id>/playlists/<playlist_id>/edit
# /users/<user_id>/playlists/<playlist_id>/videos/<video_id>/edit
# etc.

所以以下网址:

  • /users/1/playlists将列出#1 User 的所有播放列表;
  • /users/1/playlists/12/videos将列出播放列表 #12 的所有视频
于 2013-09-30T14:55:07.150 回答