都是参照hideto的电子书,写下自己的理解吧。
rails demo
建立一个叫做demo的工程,rails会自动建立相应的目录结构和生产一些必要的文件。demo在rails_app目录下,生产工程的结构如下
rails工程结构非常完善,源代码,配置文件,数据库,测试,页面,脚本等都有考虑到,而且测试考虑到非常的详细。刚生成的话有许多的文件夹是空的。
然后,创建controller
ruby script\generate controller Say
用rails创建controller,会提示app下的controllers,helpers和test下的functional都已经存在,新建了app/views下的say包以及say的controller,对应的测试类,对应的帮助类。
在controller类中定义了两个方法,然后对于方法的调用非常的直接,在两个views文件里直接用:action => "hello"就可以调用hello方法,调用的非常直接简洁。
原来以为generate是很复杂的脚本,打开一看只有非常简单的两句话
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/generate'
真正复杂的是boot.rb在config文件夹下。
定义完了controller,在给他加页面。页面扩展名是rhtml的,感觉就是html中加脚本,输出变量非常简单,和jsp一样,都是<%=变量名%>就行了,链接用的是link_to,感觉有点类似于jsp的自定义标签,但是更加的直白明了。
最后再启动Ruby自带的WEBrick服务器,运行script下的server脚本,就可以在http://localhost:3000/say/hello看到效果。
有个疑问,若是一台服务器跑两个工程呢?在java中有localhost/App1/这样的结构,而在浏览器地址栏我并没有找到demo的字样,而是直接寻找Say类的hello方法。