包含 Ruby on Rails 内容的播放列表
Posted
技术标签:
【中文标题】包含 Ruby on Rails 内容的播放列表【英文标题】:Playlist with contents in Ruby on Rails 【发布时间】:2014-06-22 18:51:37 【问题描述】:我想在我的 Ruby on Rails 应用程序中创建一个播放列表概念。目前,我只有一个Content
模型,这就是播放列表中的内容。
我已经知道我需要的关联,并且我正在使用through:
,因为我需要连接表中的order
属性,以了解每个 内容 的顺序>播放列表。
class Playlist < ActiveRecord::Base
has_many :contents_playlists
has_many :contents, through: :contents_playlists
end
class Content < ActiveRecord::Base
has_many :contents_playlists
has_many :playlists, through: :contents_playlists
end
class ContentsPlaylist < ActiveRecord::Base
belongs_to :content
belongs_to :playlist
end
我的问题是我不是 RoR 方面的专家,关于这种关联我知道理论(已经阅读过 Rails 指南),但我无法在没有错误的情况下执行它。我猜是因为我失去了一些东西。
我搜索并搜索了带有代码的教程和示例,但一无所获。所以,我正在寻求一些帮助:如何将该属性添加到连接表(我已经使用 scaffold
创建了它,但我敢打赌这不是推荐的......),以及如何管理视图和控制器,为我提供了一个界面来将内容添加到播放列表并查看播放列表中的内容以及顺序。
【问题讨论】:
您遇到了什么错误? 当我尝试构建一个视图以创建一个ContentsPlaylist
表单时发生错误,该表单包含content_id
、playlist_id
和order
。我的猜测是我真的不知道如何使用order
属性创建ContentsPlaylist
表,而且我不知道以后如何使用关联。我的目标是有一个视图,我可以将content
添加到playlist
和order
(位置)。我做不到。
如果是订单,那么这里有一个可以查看的宝石:acts_as_list,railscasts.com/episodes/147-sortable-lists-revised
我只希望Content
s 在播放列表中时被订购。会有不止一个播放列表,所以...我已经看过那集,但这不是我想要的。
【参考方案1】:
你的名字有很多错误,应该是 content_playlists 而不是 contents_playlists
class Playlist < ActiveRecord::Base
has_many :content_playlists
has_many :contents, through: :content_playlists
end
class Content < ActiveRecord::Base
has_many :content_playlists
has_many :playlists, through: :content_playlists
end
class ContentPlaylist < ActiveRecord::Base
belongs_to :content
belongs_to :playlist
end
【讨论】:
这是一个错字。感谢您的关注。我已经编辑了问题。以上是关于包含 Ruby on Rails 内容的播放列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ruby on rails 中获取控制器和操作列表?
Ruby-on-Rails 3.2:导出包含大型数据集(100,000 条记录)的 CSV
推荐 7 款最好的 Ruby on Rails 集成开发环境