我正在尝试为特定利基构建CRM工具。我是一个完整的新手。这将是我的第一个应用程序。我唯一的编程经验是使用VB和MS Access,因此RoR提供了相当多的学习曲线。我已经完成了Michael Hartl的第一版Rails教程。 (实际吸收了约10%)
我买了一个Themeforest bootstrap管理主题,并有两个一般性问题:
1)主题中包含一些 PHP代码。我假设我应该在Ruby中重写这段代码,对吧?代码主要控制文件上传等内容 - 可以由经验丰富的程序员用Ruby重写的东西(对我来说,需要几个月):
2)主题包含许多不同的页面。例如,一个页面是仪表板,另一个页面是日历。这两个页面之间都有很多重复 - 所有主要控制按钮等在页面之间保持不变。在主题中,每个页面都是一个不同的HTML文件,其中所有代码都是简单的复制。我假设我想在Rails中设置某种模板系统,这样我就不会在一堆HTML页面之间剪切和粘贴代码,对吧? (如果我更改主按钮,我只想在一个地方进行更改,而不是在这个主题附带的20个HTML文件中的每一个。)
答案 0 :(得分:4)
<强> 1)强>
我不确定是否没有其他办法,但这很可能是最简单的解决方案。
如果您必须重写Web应用程序中常见的内容,例如文件上传,通常会有一个宝石来帮助您,所以您不必从头开始做任何事情。我可以推荐使用paperclip gem Railscast进行文件上传,因为我们在自己的项目中使用它。
注意:Railscast已过期,因此安装内容不再准确。此外,回形针需要ImageMagick才能工作。
Railscasts还涵盖了许多其他有用的宝石。如果你需要找到具体的东西,只需谷歌吧。然后,github页面通常会显示是否仍然保留了某个宝石,或者您是否还有更好的东西。
<强> 2)强>
Rails通过 partials 防止重复代码。这是Railscast(语法可能自2008年以来发生了变化)。 Partials允许您将代码中的标题或按钮等代码放在一个文件中,然后可以在任何视图中呈现。
不幸的是,我无法链接其他内容,如github页面和Rubygems.org,因为我缺乏声誉。我希望这仍然有点帮助。
答案 1 :(得分:1)
将主题的常用元素提取到应用程序布局中。
将主题的模块化部分提取到自己的控制器和操作中。例如,为日历部分创建日历控制器,日历控制器中显示的操作将是支持日历的视图。您还可以使用partials(以&#39; _&#39;开头的视图),而无需创建控制器操作。但是如果有需要发送到视图的数据,最好坚持使用普通的控制器操作和视图。
至于php代码,摆脱它,尽可能多的逻辑移动到你的模型和控制器,优先放入你的模型。正如hobo建议的那样,查看gems以复制任何复杂的php代码的功能。