Ruby和Ruby on Rails入门

Jak*_*ake 2 ruby-on-rails

一些背景:

我是一个万能的交易,其中之一就是编程.我通过Excel和PHP学习了VB6来创建网站,到目前为止,它对我来说很合适.我不是CS专业甚至数学倾向 - 逻辑是我感兴趣的.

当前状态:

我愿意学习新的更强大的语言; 我第一次涉足这条路线就是学习Ruby.我去了主要的Ruby网站并做了互动介绍. (顺便说一句,当我尝试链接时,我目前正被重定向到google.com ...它也发生在其他网站上......我的计算机是否被感染?)

我喜欢我学到的东西,并希望开始使用Ruby来创建网站.我下载了InstantRails并安装了它; 到目前为止一切都很好 - 程序启动很好,我可以在控制台中测试一些Ruby代码.然而,当我尝试查看存在Ruby代码的网页时,我的麻烦就开始了.

最后,我的问题:

就像在PHP中一样,我可以直接浏览.php文件,并使用PHP标签和一些简单的'echo'语句,我可以在制作动态网页时使用它.但是,当InstantRails应用程序正常工作时,访问.rb或.rhtml页面不会产生类似的结果.我创建了一个名为'test.rb'的简单文本文件,并在其中放置了基本的HTML标记(html,head,body)和Ruby标记<%=和%>,里面有一些ruby代码.网页实际上显示了标签和代码 - 好像它只是简单的HTML.我认为Ruby在向用户显示之前并没有解析页面,但这是我对Ruby环境缺乏了解的地方.我从哪里开始?

修正: 本教程对我帮助很大!我建议那些在我位置的人去那里.

cha*_*rit 6

首先,您必须断开文件和URL之间的关系.Rails使用MVC方法,这种方法与基于脚本的方法(如ASP/PHP)不同

在经典的PHP中,你有类似的东西

  1. Server> Server启动,从中提供脚本 /usr/jake/example.com/htdocs/
  2. 用户>请给我/home.php,谢谢!
  3. 服务器>确定,/home.php映射到/usr/jake/example.com/htdocs/home.php
  4. 服务器>执行 /usr/jake/example.com/htdocs/home.php
  5. 服务器>好的,打印出"Hello World!",将其发送给响应.
  6. 用户>好,/home.php显示"Hello World!"

但是,大多数MVC框架(包括Rails)都是这样的:

  1. 服务器>服务器已启动,初始化路由模块 routes.rb
  2. 用户>请给我/home,谢谢!
  3. 服务器>确定,/home根据路由模块,通过ShowHomepage()控制器中的操作进行处理FrontpageCtr
  4. 服务器>执行 FrontPageCtr.ShowHomepage()
  5. Ruby> FrontPageCtr.ShowHomepage()打印"Hello World!"
  6. 服务器>确定,发送"Hello World!" 管道下来!
  7. 用户>好,/home显示"Hello World!"

如您所见,用户放入地址栏的内容与任何脚本文件之间没有任何关联

在典型的MVC框架中,处理对任何URL的请求都是这样的:

  1. 查看路由模块(在定义rails的情况下routes.rb)
  2. 然后路由模块将告诉服务器应该使用"Controller"和"Action"来处理请求.
  3. 然后Rails创建Controller并调用Action函数
  4. 然后,动作的结果变为"渲染",在这种情况下,假设将.rhtml文件渲染为实际的HTML ...当然,还有其他类型的结果,例如将用户发送到另一个URL等等.
  5. 然后将结果写出到响应流并由用户的浏览器显示.

简而言之:您必须首先断开脚本和URL的概念.当您构建MVC网站时,它们几乎总是没有大多数人理解的方式相关.

考虑到这一点,您应该更轻松地学习Rails和MVC的生活方式.

我不是Rails专业版,所以如果我在任何方面弄错了,请纠正我.