我应该将.erb或.rhtml文件用于Rails应用程序,其中所有Controller逻辑都存在于Views中吗?

StackOverflow https://stackoverflow.com/questions/821010

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

要做到这一点,我应该使用.erb文件或.rhtml文件,有什么区别?

有帮助吗?

解决方案

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

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

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

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

其他提示

“客户要求我建立并安装自定义货架系统。我正处于需要钉钉的地步,但我不知道该用什么来敲钉子。

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

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

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

我知道你有一个小应用程序,标准并不真正适用于你,但这是MVC的重点。逻辑应该进入控制器/模型,视图严格用于显示。

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

就是这样,剩下的就由你决定了。

是的,你是正确的,因为rails的创建者从未声明你不应该使用rails用于较小的应用程序,但他们已经一遍又一遍地说明了控制器的重要性。

我创建了一个空的Rails应用。而不是编写一个Controller,我希望将所有的Controller逻辑放在我的视图中,而不是放在单独的Controller类中。

出于好奇,你考虑将什么类型的逻辑纳入你的观点?如果它是表示逻辑那么这是一回事,但如果它是业务规则,从数据库,xml文件,web服务/休息加载数据,那么你违反了rails的核心原则。有没有听说过ASP(Classic Active Server Pages)?框架已经超越了这一点,以克服ASP等缺点和陷阱,让您不要混淆演示和代码。如果将它们全部塞在一起,您将如何对代码进行单元测试? rails的另一个关键原则就是它与其他Web框架不同的内置于框架本身的原因。

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

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

我同意其他人的观点,如果你打算花时间学习一个框架,那么就要正确地学习它并且作为创造者的意图,否则你就会忽略这一点,你就不会明白为什么rails是如此优秀的网络框架开始。您希望实现的目标可以在许多Web技术中完成:ASP,ASP.Net,PHP,JSP,Perl,但是您选择学习Ruby和rails因此不能像在任何一个中那样做其他网络技术。

坚持使用MVC是继续构建应用程序的方法。 如果您不确定为何需要Controller,那么请进行研究。我有 面对维护代码,其中脚本嵌入在表示层中。 如果没有彻底的了解,开始任何工程工作都是很滑稽的 正确的,经过时间考验的方法。这就像试图建房子一样 没有基础或蓝图。

没什么,真的。它只是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是新标准。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top