gpt4 book ai didi

ruby-on-rails - Rails 3 : Creating post model with different post types (image, 链接、文本、视频)。我应该使用什么样的继承?

转载 作者:行者123 更新时间:2023-12-01 06:38:35 25 4
gpt4 key购买 nike

我正在组装一个允许用户发帖的应用程序。每个帖子都有一个类型(图像、视频、链接、文本),其中包含相似和独特的变量。我想通过整个站点中可用的“ Composer ”中的不同形式提交这些文件。

这是后模型,画廊:

class Gallery < ActiveRecord::Base
attr_accessible :name, :asset
has_attached_file :asset, :styles => { :small => '160x120#', :medium => "500x", :thumb => "300x200#" }
belongs_to :user
has_many :likes
validates :user_id, presence: true
validates :type, presence: true
validates :name, presence: true, length: { maximum: 140, minimum: 1 }
end

我正在考虑使用单表继承,如下所示:
class Image < Gallery
end

class Link < Gallery
end

class Video < Gallery
end

class Text < Gallery
end

但我没有达到我想要的结果。一方面,我想使用我的 Gallery Controller 中的方法,例如:
# galleries_controller.rb
def like
@gallery = Gallery.find(params[:id])
@like = @gallery.likes.build(:user_id => current_user.id)
respond_to do |format|
if @like.save
format.html { redirect_to @gallery }
format.js
end
end

结尾

此外,我想创建一个“发布者”表单,其中包含每个帖子类型的表单,并允许您创建任何类型的帖子。

你会如何处理这个问题?我是 Rails 的新手,我想利用它提供的所有便利。非常感激!

最佳答案

我有一个类似的场景,在寻找实现它的好方法之后,我发现了我正在使用的这个 gem:

https://github.com/hzamani/acts_as_relation

它使用多态 has_one 关联来模拟多表继承,因此在您的情况下,您可以执行以下操作:

class Gallery < ActiveRecord::Base
acts_as_superclass
...
end

class Image < ActiveRecord::Base
acts_as :gallery
...
end

class Link < ActiveRecord::Base
acts_as :gallery
...
end

我希望这可以帮助你。
干杯!

关于ruby-on-rails - Rails 3 : Creating post model with different post types (image, 链接、文本、视频)。我应该使用什么样的继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com