第二版针对的是rails1.2版本,而我入手已经是2.2了,差别很大,这里记下我所遇到的问题。
1、数据库连接。
书中例子Depot使用的MySQL版本为5.0,而我最初使用的是5.1版本,始终无法正常连接,后来尝试Postgresql8.3,再次失败,最后卸载MySQL5.1,安装5.0版本搞定。
2、scaffold在rails2.2中的问题
查得scaffold在Rails2.0时就不再提供,而需要通过插件install,但是我install后继续有问题。参考了http://jkfzero.iteye.com/blog/284774中的内容,看来动态使用暂时搞不定,于是用文章中提到的办法,静态使用scaffold来创建model,control and helper,要注意的是,之前的东西要清理干净,包括表格,helper,不然使用时还是会有问题,最后还必须执行一次rake db:migrate,不然在new操作时是会报错的。针对这个问题,国外的论坛上是建议将rails的版本回退到1.2.6,如果再遇到类似的问题,我只好这样做了-_-#.
ps: 回退rails版本的方法,执行gem uninstall rails卸载,执行gem install rails --version 1.2.6安装特定版本。
3、添加price字段
按照书中的操作可以改变db中表格结构,但是浏览器刷新后,貌似scaffold并没有被重新执行,毕竟是静态的嘛,所以要修改scaffold生成的代码,浏览了下control,model,views,发现views和表结构相关,修改所有的erb文件,依葫芦画瓢就可以了:)
4、迭代A4中有涉及静态scaffold和动态scaffold的内容
5、optimize list view的html有不支持的地方,下面这段有问题,先掠过:
<%= if @product_pages.current.previous
link_to("Previous page", { :page => @product_pages.current.previous })
end
%>
<%= if @product_pages.current.next
link_to("Next page", { :page => @product_pages.current.next })
end
%>
6、destroy 链接构造不正确。
书上的代码是
<%= link_to 'Destroy', { :action => 'destroy', :id => product },
:confirm => "Are you sure?",
:method => :post %>
构造出来类似"http://127.0.0.1:3000/products/9",正确的应该形似"http://127.0.0.1:3000/products/9/destroy",查阅了API guide,正确的写法是:
<%= link_to 'Destroy', {:action => 'destroy', :id => product },
:confirm => "Are you sure?",
:method => :delete %>
7、创建购物车的例子cart,会有异常ActionController::InvalidAuthenticityToken,因为2.0+的版本的新加控制( ensuring that all forms are coming from the current web application, not a forged link from another site),见http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html,我们需要在enviroment.rb中新加一条config.action_controller.allow_forgery_protection = false去disable它。
8、Ajax初始那个例子,如下,要去掉等号才正确,不然有compile error
<% form_remote_tag :url=> { :action=>:add_to_cart,:id=>product } do %>
<%= submit_tag "Add to cart" %>
<% end %>
9、Ajax初体验中,FF3不需要后续调整就能有ajax的效果了,而IE还是需要加上诸如以下的附加代码以及rjs
<%= javascript_include_tag :defaults %>
10、回退db可以执行 rake db:migrate VERSION=20081212103700类似的cli,复杂点的话还要配以删除table的方式。
11、TODO
分享到:
相关推荐
《MATLAB GUI设计学习手记(第2版)》在第1版的基础上,完善了全书知识结构,..., 《matlab gui设计学习手记(第2版)》适合需要短时间内迅速掌握matlab gui设计的初学者,也可作为相关专业师生或工程开发人员的参考手册。
如题:MATLAB GUI设计学习手记(第二版)源程序
【MATLAB GUI设计学习手记】源代码 数据.zip
开发网页看 网页开发手记 htmlcss js 大家可以看看
Android开发手记一_NDK编程实例Android开发手记一_NDK编程实例Android开发手记一_NDK编程实例
该课程由浅入深、循序渐进全面详解有关网站建设开发中Web应用核心技术HTML、CSS和JavaScript知识体系及...授课过程中通过编写和分析实际应用开发中的大量程序代码,来帮助学员对Web应用知识的理解和实战技能的提升。
资源名称:网页开发手记.HTML.CSS.JavaScript实战详解内容简介:《网页开发手记:HTML CSS Javascript实战详解》,本书学习的三大技术是web标准的主要组成部分,并且在javascript部分以实例方式介绍了...
MATLAB GUI初学者笔记,很适合基础者学习。
【MATLAB GUI设计学习手记】源代码,非常适合初学者练习
最新版《MATLAB GUI设计学习手记 第3版》配套源代码,经matlab 2014a亲测。 作者亲自上传,欢迎下载!
AVR-GCC 学习手记AVR-GCC 学习手记AVR-GCC 学习手记
高等数学学习手记α评估版,很好,很不错,可以参考。
【MATLAB_GUI设计学习手记】源代码
罗华飞的《MATLAB GUI设计学习手记》由浅入深、循序渐进地介绍了MATLAB GUl...《MATLAB GUI设计学习手记》适合需要短时间内迅速掌握MATLAB GUl设计的初学者使用,也可作为相关专业师生、相关工程开发人员的参考手册。
一本描述网页开发的书,很全,希望大家能喜欢
Matlab_GUI设计学习手记(第二版)_串口例程程序