第二版针对的是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版).pdf”这份资料将系统地引导初学者从零开始掌握MATLAB GUI设计,通过理论结合实践,使读者能够独立开发出具有专业水准的图形用户界面。无论是进行科学计算、数据分析还是工程应用,...
《MATLAB GUI设计学习手记(第2版)》在第1版的基础上,完善了全书知识结构,..., 《matlab gui设计学习手记(第2版)》适合需要短时间内迅速掌握matlab gui设计的初学者,也可作为相关专业师生或工程开发人员的参考手册。
在PHP学习开发时,建议采用面向对象的方式,先模块化封装类,再通过通用和快捷的类方法提升开发效率。对于多人协作项目,可以使用模板开发机制,如Smarty,以简化前端工作。对于框架学习,Laravel是一个很好的选择,...
MATLAB GUI设计学习手记(第二版)——罗华飞编著2011
本压缩包文件“MATLAB GUI设计学习手记(第二版)源程序”提供了关于MATLAB GUI设计的实例代码和教程,对于想要深入学习MATLAB GUI编程的用户来说,是一份宝贵的资源。 MATLAB GUI设计涉及多个方面,包括组件使用、...
开发网页看 网页开发手记 htmlcss js 大家可以看看
MATLAB(Matrix Laboratory)是一种强大的数学计算和编程环境,尤其在科学计算、数据分析以及图形用户界面(GUI)设计方面有着广泛的...通过学习和分析这些资源,你可以深化对MATLAB GUI开发的理解,提高你的编程能力。
本资源“MATLAB GUI设计学习手记”提供了丰富的源代码示例,对于初学者来说是很好的学习材料。 在MATLAB中,GUI是由各种组件(如按钮、文本框、滑块等)组成的窗口,这些组件可以通过函数和回调机制进行控制和响应...
"MATLAB_GUI设计学习手记"是一份专门针对MATLAB GUI设计的学习资料,源代码包含了设计过程中的实例,对于想要深入理解和掌握MATLAB GUI开发的人来说非常有价值。通过这些源代码,你可以学习到如何构建自己的MATLAB...
《MATLAB GUI设计学习手记 第3版》是针对这一主题的深度学习资料,作者罗华飞通过实例和源代码,详细介绍了如何利用MATLAB构建高效、美观的GUI。这本书的第三版,意味着它包含了最新的技术和实践,适配了MATLAB 2014...
### Android开发手记一_NDK编程实例 #### 一、开发环境的搭建 在开始具体的NDK编程之前,首先需要确保开发环境已经被正确地搭建起来。对于初次接触Android NDK开发的朋友来说,拥有一个良好的环境配置是至关重要的...
众多案例的源代码,均可完美运行,具有较高的学习价值。包括MATLAB的入门以及提高。
《网页开发手记--实战详解》由叶青、孙亚南、孙泽军编著,笔者将网页制作技术粗略划分为前台浏览器端技术和后台服务器端技术。本书主要学习前台浏览器端技术,也就是静态页面制作技术。早期只需要使用HTML即可单独...
罗华飞的《MATLAB GUI设计学习手记》由浅入深、循序渐进地介绍了MATLAB GUl...《MATLAB GUI设计学习手记》适合需要短时间内迅速掌握MATLAB GUl设计的初学者使用,也可作为相关专业师生、相关工程开发人员的参考手册。
这篇"【MATLAB GUI设计学习手记】源代码"提供了一手的学习资料,对初学者而言是一份宝贵的资源。 MATLAB GUI设计的核心在于GUIDE(Graphical User Interface Development Environment),这是一个可视化的设计工具...
一本描述网页开发的书,很全,希望大家能喜欢
在"MATLAB GUI设计学习手记"中,可能详细介绍了如何使用GUIDE创建GUI布局,包括各种控件(按钮、文本框、滑块等)的添加和配置。 2. **Callback函数**:GUI的功能实现主要依赖于回调函数。当用户与界面元素交互时,...
罗华飞的《MATLAB GUI设计学习手记 第2版》正是这样一本深入浅出的教程,旨在帮助读者掌握MATLAB GUI的创建和开发技巧。 在MATLAB GUI设计中,主要涉及以下几个关键知识点: 1. **GUIDE工具**:这是MATLAB提供的一...