包含 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_idplaylist_idorder。我的猜测是我真的不知道如何使用order 属性创建ContentsPlaylist 表,而且我不知道以后如何使用关联。我的目标是有一个视图,我可以将content 添加到playlistorder(位置)。我做不到。 如果是订单,那么这里有一个可以查看的宝石:acts_as_list,railscasts.com/episodes/147-sortable-lists-revised 我只希望Contents 在播放列表中时被订购。会有不止一个播放列表,所以...我已经看过那集,但这不是我想要的。 【参考方案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 集成开发环境

Ruby on Rails - 一个布局页面不同的内容

使用 Ruby on Rails ActiveSupport::Concern 功能时如何“嵌​​套”包含模块?

Ruby on Rails - 从数组中删除某些内容