Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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 设计决策_Ruby On Rails - Fatal编程技术网

Ruby on rails 设计决策

Ruby on rails 设计决策,ruby-on-rails,Ruby On Rails,以一个典型的社交网站为例,它或多或少有以下几种模式: User Blog, Posts Forums, Topics, Responses Wiki, Pages .... .... 我想介绍一个名为Site/Space的模型,其中每个用户可以有一个或多个站点/空间。我想为网站所有者提供一种选择许多功能或称之为应用程序/工具的方法 设计这个模型的最佳方式是什么——所谓的功能/应用程序/工具 注意:在许多情况下,每个特征可能与相应的模型不同。让我们考虑博客特性,通过启用博客功能,我应该能够联想

以一个典型的社交网站为例,它或多或少有以下几种模式:

User 
Blog, Posts
Forums, Topics, Responses
Wiki, Pages
....
....
我想介绍一个名为Site/Space的模型,其中每个用户可以有一个或多个站点/空间。我想为网站所有者提供一种选择许多功能或称之为应用程序/工具的方法

设计这个模型的最佳方式是什么——所谓的功能/应用程序/工具

注意:在许多情况下,每个特征可能与相应的模型不同。让我们考虑博客特性,通过启用博客功能,我应该能够联想到相应站点如何访问博客和POST,另一个例子是通过启用论坛功能,我应该能够联想到站点不仅可以访问论坛,还可以访问主题和响应模型。我需要这些检查,这样我就可以定义一个before_过滤器来检查特定站点是否有权访问内容


我查看了一些具有这种随需应变功能的开源rails应用程序,但通过查看表单属性,看起来它们有_blog、has post、,。。。字段隐藏在Sites表中,在我的情况下,它可能无法工作,因为这些模型的数量可能会增加。您仍然认为在站点表中添加这些布尔字段是最好的方法吗?

在应用程序和数据库中的站点表之间定义多对多关系

应用程序

阿皮德 名称 ... 地点

站点ID 用户ID ... 网站应用

站点ID 阿皮德

从SiteApps中选择AppID,其中SiteID=


另请参见多态关联、has-many:through和/或has-and-own-to-many听起来像是解决方案的构建块。我会研究它们。

但是,通过添加博客应用程序,我如何知道该网站可以访问博客模型和帖子模型?但是通过添加博客应用程序,我如何知道该网站可以访问博客和帖子模型?多态关联。目前还不清楚您想做什么,但对于处理可以引用多种类型项目的单数或复数关联,它们通常是正确的方法。我还将检查您的系统,看看您是否可以简化任何关系。