这两天不是很忙,非常不错,很是开心,终于可以有点自己的空闲时间了
。不过之所以所以学习ruby,还是因为网上传得太火爆了,大有新一轮技术革命的感觉。
首先从网上找到了一篇ruby on rails实战,按部就班的演习一遍,发现果然是如此的简单易用,开发一个CRUD竟是如此的容易,对于我这个从事J2EE多年的编程人员来说,感触到的不仅仅是惊喜。那篇文章中有几处小bug,但是很容易的就被我调试好了,虽然我还并没有太熟悉ruby on rails或是ruby(以前也曾看过ruby语法,但API看的非常少),这样说明了它的简单易用性。以前看到一些评论说,它的开发效率是java的十倍,当时曾经嗤之以鼻,但现在感觉话虽有些夸张,但效率还是很惊人的。
现在把我碰到的一个问题简单写出来,以防以后查用:
在使用ruby命令时,如果使用ruby script\generate controller book简单的创建controller 骨架文件book_controller.rb,我们会发现,除了这个.rb文件外我们并没有生成其它文件,除了app\views\book这个空的文件夹外。然后当我们的程序运行下来后,发现页面上没有任何的样式,\public\stylesheets下也是空空如也,这时,我们可能要修改一些自己的东西,需要在book_controller.rb中新添加一些方法,要手工添加一些相应的.rhtml文件,按照说明我们在public\stylesheets下加入scaffold.css样式表,但是发现没有任何效果,这是因为.rhtml中的样式没有找到样式表,我们需要手工添加,例如:
<head>
<link href="/stylesheets/scaffold.css" media="screen" rel="Stylesheet" type="text/css" />
<title>All books</title>
</head>
这样就可以自己指定样式表的位置。
当然,ruby on rails可以为我们做更多,我们可以使用ruby script/generate scaffold book来生成完整的框架,包括.rhtml和\public\stylesheets\scaffold.css.这时候我们会发现app\views下生成的文件夹名为books,这可能是因为我用到了表之间的一对多关联,它就自动建立了复数的文件夹名,但是数据库中的表名还是单数的,这个并没有发生变化。(之所以这样认为,是因为当我没有指明表之间的一对多关系时,生成的都是单数文件夹名,如book,当我指明后则生成了books,还没有深入了解,目前只是猜想) 。
app\views\books下会自动生成一套CRUD的.rhtml页面,还有一个_form.rhtml,在app\views下还会生成一个layouts文件夹,下面有一个books.rhtml页面文件,打开后会发现,里面的代码类似于一个页面模版,而其它app\views\books的CRUD的.rhtml页面上就是一些简单的函数和方法,其实,在显示时他们确实是调用books.rhtml的模版的,也可以看到,在books.rhtml中已经加载了scaffold.css,就是这一句了<%= stylesheet_link_tag 'scaffold' %>。就这么简单。
其实ruby on rails还是有非常多的东西要学习的,虽然很简单,但是要想非常好的使用还得下一番苦功夫。暂时到这里吧,希望和大家多多交流学习使用ruby on rails的新的体会。