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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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