Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 创造一个不同的“世界”;体裁;我的网站(即,我有一个stackoverflow等价物,我想创建一个serverfault等价物)_Ruby On Rails_Fork - Fatal编程技术网

Ruby on rails 创造一个不同的“世界”;体裁;我的网站(即,我有一个stackoverflow等价物,我想创建一个serverfault等价物)

Ruby on rails 创造一个不同的“世界”;体裁;我的网站(即,我有一个stackoverflow等价物,我想创建一个serverfault等价物),ruby-on-rails,fork,Ruby On Rails,Fork,我的网站,解释说唱歌词。我想创建一个新网站,Rock Genius,解释摇滚歌词——否则它将是相同的(相同的布局,相同的DB模式;就像Serverfault是Stackoverflow) 最好的方法是什么 方法1:分叉代码 拨出Rap Genius代码,更改相关部分(例如,“Rap”->“Rock”),创建一个新数据库,然后进城 优点:可以让它快速工作 缺点:在两个应用程序中都添加一个功能会有点痛苦。此外,不可能让Rap Genius在DB级别访问Rock Genius的数据 方法2:将其保

我的网站,解释说唱歌词。我想创建一个新网站,Rock Genius,解释摇滚歌词——否则它将是相同的(相同的布局,相同的DB模式;就像Serverfault是Stackoverflow)

最好的方法是什么

方法1:分叉代码 拨出Rap Genius代码,更改相关部分(例如,“Rap”->“Rock”),创建一个新数据库,然后进城

  • 优点:可以让它快速工作
  • 缺点:在两个应用程序中都添加一个功能会有点痛苦。此外,不可能让Rap Genius在DB级别访问Rock Genius的数据
方法2:将其保留为单个应用程序 每当有请求进入我的应用程序时,请检查域。如果是
rapgenius.com
,请将
站点名称
常量设置为
“rapgenius”
。在面向用户的实体(歌曲、博客文章等)上创建一个
类型
字段,并根据
站点名称更新我的查询以使用正确的类型

在面向用户的字符串之上创建一个抽象层,我可以编写
,而不是
欢迎来到Rap Genius
并将
欢迎消息()
考虑到
站点名称

  • 优点:灵活性强
  • 缺点:很多工作

想法?

第二种方法对我来说更合适

您已经强调了主要的优点和缺点-这肯定会有更多的工作,但维护起来会更加友好。有没有第三、第四、第五个站点的机会?如果是这样,毫无疑问,这是正确的选择

您还可以更轻松地共享用户帐户、声誉和任何其他基于社区的功能

基于域名,“翻译”静态文本的Rails
i18n
stuff可能值得一看。这样可以避免为每个要显示的字符串编写帮助器方法

然后你应该能够很容易地“特许”网站-添加静态字符串的翻译,新域的句柄,可能还有一些特定于网站的图像或CSS,你就完成了