3

我刚开始学习Rails。我创建了一个空的 Rails 应用程序。而不是写一个控制器,我想把我所有的控制器逻辑放在我的视图中,而不是放在单独的控制器类中。

为此,我应该使用 .erb 文件还是 .rhtml 文件,有什么区别?

4

7 回答 7

32

首先,它们实际上是相同的,但您应该使用新的标准命名格式 .html.erb

其次,停止你正在做的事情并重新考虑一切!!!!!!!

MVC 的重点是将逻辑与显示分开,反之亦然。您的大部分逻辑都应该在您的模型中,控制器应该只是方便抓取该逻辑并将其传递给您的视图。

除了显示数据之外,您不应在视图中执行任何操作。

于 2009-05-04T17:21:39.070 回答
11

“一位客户要求我建造和安装一个定制的搁架系统。我正处于需要钉钉子的地步,但我不确定用什么来钉钉子。

我应该使用旧鞋还是玻璃瓶?

在你的情况下,我会选择玻璃瓶

于 2009-05-05T03:21:49.780 回答
4

在新的 rails 3.0 .rhtml 文件将不受支持。.html.erb 是新标准。

我知道你有一个小应用程序,标准并不真正适用于你,但这就是 MVC 的全部意义所在。逻辑应该进入控制器/模型,并且视图严格用于呈现。

于 2009-05-04T17:35:54.370 回答
3

您的问题的简单答案是否定的。不,您不应该将控制器逻辑放在视图中。如果您不需要控制器,那么您可能不需要导轨。我知道这不是你想要的答案,但坦率地说,你错了,纯粹而简单。如果你想学习 Rails 框架,那么这里告诉你的是正确的,按照你的方式去做就意味着要么忘记你刚刚做过的事情,要么就意味着成为一个糟糕的开发人员。

事情就是这样,剩下的就看你自己了。

于 2009-05-05T02:41:17.960 回答
1

是的,您是正确的,rails 的创建者从未说过您不应该将 rails 用于较小的应用程序,但他们一遍又一遍地说明了控制器的重要性。

我创建了一个空的 Rails 应用程序。而不是写一个控制器,我想把我所有的控制器逻辑放在我的视图中,而不是放在单独的控制器类中。

只是出于好奇,您正在考虑将哪种逻辑纳入您的观点?如果是表示逻辑,那是一回事,但如果是业务规则,从数据库、xml 文件、基于 web 服务/rest 加载数据,那么你就违反了 rails 的核心原则。听说过 ASP(经典活动服务器页面)吗?框架已经超越了这一点,以克服像 ASP 这样的缺点和陷阱,让您不要混合表示和代码。如果你把它们都塞在一起,你将如何对你的代码进行单元测试?Rails 的另一个关键原则就是为什么它与其他 Web 框架不同,它内置于框架本身中。

我想学习如何使用“标准”Ruby 框架

在您的回复中,您一直提到您想学习标准的 Ruby 框架?如果是这种情况,为什么不使用 irb 呢?Rails 不是标准 Ruby 框架的一部分。事实上,你可能会使用 irb 了解更多关于 Ruby 的知识,然后再使用 Rails。一旦你熟悉了 Ruby,就开始学习吧。

我同意其他人的观点,如果您打算花时间学习一个框架,那么请按照创建者的意图正确地学习它,否则您会错过重点,并且您不会明白为什么 Rails 是一个如此好的 Web 框架开始和。您希望完成的工作可以通过多种 Web 技术完成:ASP、ASP.Net、PHP、JSP、Perl,但您选择学习 Ruby 和 rails,因此不会像在任何其他网络技术。

于 2009-05-04T18:51:39.913 回答
1

坚持 MVC 是继续构建应用程序的方式。如果您不确定为什么需要控制器,请进行研究。我面临着维护代码,其中脚本嵌入在表示层中。如果没有彻底了解正确的、经过时间考验的方法,就开始任何工程工作是可笑的。这就像试图在没有地基或蓝图的情况下建造房屋。

于 2011-08-25T13:03:05.790 回答
0

真的没什么。这只是 Rails 1 和 Rails 2 之间理念的改变。在 Rails 2 之前,你有 file.rhtml、file.rxml 和 file.rjs。在 Rails 中,它更改为 file.content_type.template_engine。所以对于file.html.erb,内容类型是html,模板引擎是ERb。rxml 现在是 xml.builder 并且 rjs 现在应该(大部分)是 js.rjs

在新的 rails 3.0 .rhtml 文件将不受支持。.html.erb 是新标准。

于 2012-05-20T19:07:03.120 回答