Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 一页模型,不同的布局/视图。我如何利用STI?_Ruby On Rails_Ruby_Single Table Inheritance - Fatal编程技术网

Ruby on rails 一页模型,不同的布局/视图。我如何利用STI?

Ruby on rails 一页模型,不同的布局/视图。我如何利用STI?,ruby-on-rails,ruby,single-table-inheritance,Ruby On Rails,Ruby,Single Table Inheritance,我正在开发一个应用程序来学习rails。它是一个简单的页面管理器,使用awesome_嵌套集创建嵌套页面。我想使用STI,但不确定如何使用。我看到的大多数STI示例都涉及一个主要的“宠物”模型以及“狗”和“猫”的子模型;我很难把它变成一个真实的例子。下面是我如何使用这些页面 3种不同的页面“类型”:博客、照片、手机照片。要真正描述这一点,唯一的方法是向您展示我当前在Coldfusion中构建的站点 它们都使用相同的表和几乎相同的属性。照片部分使用照片属性,并有一些小的更改,如上传、调整大小等,但

我正在开发一个应用程序来学习rails。它是一个简单的页面管理器,使用awesome_嵌套集创建嵌套页面。我想使用STI,但不确定如何使用。我看到的大多数STI示例都涉及一个主要的“宠物”模型以及“狗”和“猫”的子模型;我很难把它变成一个真实的例子。下面是我如何使用这些页面

3种不同的页面“类型”:博客、照片、手机照片。要真正描述这一点,唯一的方法是向您展示我当前在Coldfusion中构建的站点

它们都使用相同的表和几乎相同的属性。照片部分使用照片属性,并有一些小的更改,如上传、调整大小等,但除此之外,不同“类型”之间的一切都是相同的。页面类型之间的主要区别在于页面的布局和访问方式。例如:

在索引上:
/照片-布局缩略图以显示所有带有“照片”类型的页面
/blog-显示所有带有“blog”类型的页面的布局

在节目中:
/照片/1-显示带有上一张/下一张照片的大照片
/blog/2-显示带有上一条/下一条的博客条目

每种类型是否需要单独的控制器?如果不需要更改页面的创建/更新方式,是否需要单独的模型?我是否只创建指向某个动作的路线,该动作呈现我需要的布局?我想我看到了“性传播感染”这个词,使它变得更加困难。我只是很谨慎,因为我想学习“rails方式”。我需要性病吗

任何帮助都将不胜感激,我只需要克服这个困难,有人帮我“点击”!:)

这将指导您逐步完成STI

至于照片类,你必须上传图片,你可以这样做

class Photo < Page

attr_accessor :photo_file_name, :photo_file_size, :photo_file_type

  has_attached_file :photo,
                  :url => "#{your_upload_url}",
                  :path => "#{your_upload_path}"
end
班级照片“#{您的上传_url}”,
:path=>“#{您的上传路径}”
结束
如果使用此代码,则页面模型中必须有一个名为photo的列,该列将存储上载文件的文件名

希望这对你有帮助。如果你需要更多的建议,我会在这里D

更新

在再次阅读了这个问题之后,我意识到您还需要为所有儿童STI课程设置单独的页面。因此,您将需要不同的控制器来处理该问题。

这将指导您逐步完成STI

至于照片类,你必须上传图片,你可以这样做

class Photo < Page

attr_accessor :photo_file_name, :photo_file_size, :photo_file_type

  has_attached_file :photo,
                  :url => "#{your_upload_url}",
                  :path => "#{your_upload_path}"
end
班级照片“#{您的上传_url}”,
:path=>“#{您的上传路径}”
结束
如果使用此代码,则页面模型中必须有一个名为photo的列,该列将存储上载文件的文件名

希望这对你有帮助。如果你需要更多的建议,我会在这里D

更新

在再次阅读了这个问题之后,我意识到您还需要为所有儿童STI课程设置单独的页面。因此,您将需要不同的控制器来处理该问题