【发布时间】:2017-08-16 20:14:26
【问题描述】:
这是我的第一篇文章。
我是 Rails 的新手,我正在尝试学习如何使用它。需要明确的是,我对 Ruby 非常熟悉。我很确定我了解了 MVC 结构,但我无法理解我遇到的某些行为。
以防万一有人从同一来源了解到,我正在看 Derek Banas 解释它。他解释了我在 16:20 左右遇到的问题。 https://www.youtube.com/watch?v=GY7Ps8fqGdc
具体细节- 所以我将这一行放在了我的 routes.rb 文件中:
match':controller(/:action(/:id))', :via => :get
我使用这个在控制器中创建了一个实例变量:
def sample
@controller_message = "Hello From The Controller"
end
在我创建的示例视图中,我像这样调用“controller_message”变量:
<%= "#{@controller_message}" %>
它有一半的时间在那个视图上工作。现在根据我的理解,我应该在该代码行放置在视图中的任何位置看到“控制器的Hello”,对吗?也许我只是不明白这个功能是如何工作的,但我在同一目录中制作了其他视图文件,试图了解控制器如何将数据传递给视图。他们加载和一切,但我没有收到来自控制器的消息。有时,看起来不一致,控制器消息甚至不会显示在它最初工作的第一个视图上,特别是如果我稍微浏览一下站点。要让它再次显示该消息,我必须重新启动我的服务器。
我只是误解了 MVC 的工作原理,还是我的软件出现故障(我知道这不太可能),还是什么?我很混乱。
我听说过很多关于这个社区的好消息。提前感谢任何愿意帮助我的人。我太紧张了。
【问题讨论】:
-
这是一个糟糕透顶的教程。创建诸如
match ':controller(/:action(/:id))', :via => :get之类的“神奇”路由可能看起来聪明,但会在您的应用程序中打开任何操作以获取请求! -
我理解你为什么会这样说,但我向你保证,他被认为是一名编程老师。我相信他使用“魔法”路由的原因是为了在他转向路由之前,他可以专注于解释控制器和视图之间的关系。 MVC 模型结构对新手来说有点令人生畏。我的意思是学习所有部分如何一起工作。
但是,我喜欢从多个来源学习。所以如果你想为初学者推荐一个好的教程,我一定会看的。 -
M. Hartl 的 Rails 教程相当不错。他通过使用脚手架命令而不是这种废话来更好地解释 MVC。
-
M. Hartl 的 Rails 教程是 RoR 的圣经!大声笑
-
谢谢,我去看看。作为记录,Derek Banas 确实在同一视频的后面使用脚手架进行了解释。
标签: ruby-on-rails model-view-controller controller