2

我正在尝试为特定的利基市场构建 CRM 工具。我是一个完全的新手。这将是我的第一个应用程序。我唯一的编程经验是使用 VB 和 MS Access,所以 RoR 呈现出相当的学习曲线。我已经完成了 Michael Hartl 的 Rails 教程的第一个版本。(实际上吸收了大约 10%)

我买了一个 Themeforest 引导管理主题并且有两个一般性的问题:

1) 主题中有一些PHP 代码。我假设我应该用 Ruby 重写这段代码,对吧?代码主要控制文件上传等事情 - 可以由经验丰富的程序员很快用 Ruby 重写的事情(对我来说,这需要几个月的时间:)

2)主题包含许多不同的页面。例如,一个页面是仪表板,另一个页面是日历。这两个页面之间有很多重复 - 所有主要控制按钮等在页面之间保持相同。在主题中,每个页面都是一个不同的 HTML 文件,其中所有代码都是简单地复制的。我假设我想在 Rails 中设置某种模板系统,这样我就不会在一堆 HTML 页面之间剪切和粘贴代码,对吧?(如果我更改主按钮,我只想在一个地方进行更改,而不是在该主题附带的 20 个 HTML 文件中的每一个中进行更改。)

4

2 回答 2

4

1)

我不确定是否没有其他方法,但这很可能是最简单的解决方案。

如果您必须重写 Web 应用程序中常见的内容,例如文件上传,通常有一个 gem 可以帮助您,因此您不必从头开始做所有事情。我可以推荐回形针 gem,Railscast用于文件上传,因为我们在自己的项目中使用它。

注意:Railscast 已过时,因此安装内容不再准确。此外,回形针需要 ImageMagick 才能工作。

Railscasts 还涵盖了许多其他有用的 gem。如果您需要找到特定的东西,只需谷歌它。然后,github 页面通常会显示 gem 是否仍在维护,或者您是否可以更好地使用其他东西。

2)

Rails 使用partials防止重复代码。这是Railscast(自 2008 年以来语法可能已经改变)。Partials 允许您将代码(例如标题或案例中的按钮)放在文件中,然后可以在您的任何视图中呈现。

不幸的是,我无法链接 github 页面和 Rubygems.org 之类的其他内容,因为我缺乏声誉。我希望这仍然有点帮助。

于 2012-07-11T01:13:51.540 回答
1

将主题的常见元素提取到您的应用程序布局中。

将主题的模块化部分提取到它们自己的控制器和动作中。例如,为日历部分创建一个日历控制器,日历控制器中出现的动作将是支持该日历的视图。您还可以使用局部视图(以“_”开头的视图),而无需创建控制器操作。但是如果有数据需要发送到视图,最好还是坚持使用普通的控制器动作和视图。

至于 php 代码,去掉它,将尽可能多的逻辑移到你的模型和控制器中,优先放入你的模型。正如 hobo 建议的那样,查看 gems 以复制任何复杂 php 代码的功能。

于 2012-11-11T13:18:46.787 回答