rubyonrails:Ruby on rails开发从头来( 5十一)- ActiveRecord基础(并发处理)

在学习Rails中并发处理处理前我们先简单了解下并发处理概念  在有多个处理同时访问同个数据库应用中可能会出现这样情况个处理更新了数据库中行而使得另个处理中持有数据变得陈旧了例如A和B先后从数据库中提取了相同数据并都做了修改这时B先将自己修改更新会数据库稍后A将自己修改更新回数据库这时将会覆盖B所作修改当B再次提取数据库后看到是A修改结果而不是自己  个解决办法就是将更新表或者行进行锁定防止其他进... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 2)- ActiveRecord基础(删除记录)

Active Record提供了两种方式进行删除操作首先有两个类级别思路方法delete和delete_all这两个操作处在数据库层面上delete思路方法接收个或组和数据库对应iddelete_all思路方法删除所有符合指定条件记录如果没有指定条件就会删除所有记录思路方法返回值和具体数据库适配器相关例如oracle返回被影响行数如果没有记录被删除也不会抛出异常 Order.delete(123)... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 3)- ActiveRecord基础(表关联)

很多使用数据库都包含有多个表而且通常些表的间还有关联关系订单常含有多个条目而个条目又关联到种商品个商品可能又属于多个商品分类个商品分类里又包含有多个区别商品  在数据库中这些关联表现为使用主键值把表关联起来也就是外键但是这属于底层范畴我们需要处理Model对象间关联而不是数据库中列和键如果个订单含有多个条目我们需要有办法来维持处理它们关系如果个条目引用到种商品我们或许想这样做:price = li... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 4)- ActiveRecord基础(指定关联关系)

Rails支持 3种表间关联关系对对多多对多你需要在Model中加入声明来标识这些关联:has_onehas_manybelongs_tohas_and_belongs_to_many  对关联关系可能存在于象订单和发票这样关系个订单只能有个发票在Rails中我们这样指明: Order ActiveRecord::Basehas_one :invoice. . . Invoice Active... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 5)- ActiveRecord基础(一对一关联关系)

对关联或者更正确说是对零或对关联是通过外键引用到另外张表中至多条记录实现下图描述了orders表和invoices表关系:" _disibledevent= trueActive Record将自动删除从表中关联记录  :order指定了在记录被返回前怎样进行排序我们会在后面有关has_many内容里详细讨论... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 6)- ActiveRecord基础(一对多关联关系)

对多关联可以使我们表示组对象例如个order可以包含有任意多个line item在数据库中所有line item记录都通过外键关联到特定order   在Active Record中通过在父对象中has_many来定义到子对象关联在子对象中使用belongs_to来指定父对象我们已经在上篇中了解了belongs_to声明实际上在对多情况下和对是相同所以我们来了解has_many声明" _disib... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 7)- ActiveRecord基础(多对多关联关系)

在Rails中多对多关联通过在关联表对应类中声明has_and_belongs_to_many来实现   在数据库中多对多关联使用中间表来实现表中包括关联表主键Active Record假定这个中间表名字是由关联表名字根据字母顺序串联起来得到例如关联表为categories和products中间表名字就是categories_products" _disibledevent= Time.now)e... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 8)- ActiveRecord基础(自关联)

或许存在这样情况在个表中条记录关联到表中另条记录例如公司中每个雇员都有上级和下级而他们同时又是雇员在Rails中你可以这样使用Employee类: Employee ActiveRecord::Basebelongs_to :manager,:_name = "Employee",:foreign_key = "manager_id"belongs_to :mentor,:_name = "... [阅读全文]

rubyonrails:Ruby on rails开发从头来( 5十 9)- ActiveRecord基础(预加载子记录)

预加载子记录讨论问题和“延迟加载”是相同通常Active Record会推迟从数据库中加载子记录直到你需要他们例如通过Rdoc中例子我们假定博客有个Model像下面这样: Post ActiveRecord::Basebelongs_to :authorhas_many :comments, :order = created_on DESCend  如果我们遍历所有po... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 8)-使用Session创建购物车

在前面内容里我们演示了怎样构建个商品列表这次我们在前面内容基础上构建个简单购物车  1.     首先我们要来创建个保存客户购物信息表:  数据库脚本:drop table exists line_items;create table line_items (id not null auto_increment,product_id not null,quantity not null d... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 9)-给购物车添加错误处理

在上次内容里我们演示了怎样构建个简单购物车这次内容非常简单给购物车添加处理  对于Web系统来说并发处理是个无法回避问题我们来模仿个并发冲突情景:  1.     用户进入购物车页面看到共有5种商品  2.     管理员在后台维护商品列表将5种商品中种删除掉  3.     客户选中被删除掉商品添加到购物车  在这种情况下如果不作任何处理话将会产生个异常而我们要作是处理这个异常给用户显示个商品不... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十)-清空购物车和格式化金额

在上次内容里我们给购物车添加了处理这次来实现清空购物车和金额格式化处理  到现在我们还没有给显示购物信息列表页面“empty cart”链接添加任何处理我们首先来实现这个功能:  1.    在Store_Control.rb文件中添加empty_cart思路方法:def empty_cartfind_cart.empty!flash[:notice] = Your car... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十一)-订单(Order)

在上次内容里我们实现了清空购物车和金额格式化处理这次实现订单模块  1.     首先我们要在数据库里创建Order表创建表Sql如下:create table orders (id not null auto_increment,name varchar(100) not null,email varchar(255) not null,address text not null,pay_ty... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 2)-订单(Order)

在上次内容里我们创建了订单Model和表示页面这次继续编写CHECKOUT处理  1.    在checkout.rhtml页面上有个CHECKOUT按钮上次还没有给它编写处理代码现在在store_controller中添加save_order思路方法代码如下:def save_order@cart = find_cart@order = Order.(params[:order])@order.... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 3)-订单(Order)

在上次内容里我们编写了CHECKOUT处理这次我们将显示购物车和订单放在个页面上表示这样用户在下订单时候就可以很方便地看到自己购物情况  1.     修改checkout.rhtml文件只要添加句代码:%= error_messages_for("order") %%= render_component(:action = "display_cart") % ――这句 %= stylesheet... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 4)-送货处理

在上次内容里我们完成了订单编写这次我们模拟个简单送货页面给这个购物车管理员用  1.     首先我们修改order表给他添加个字段shipped_at:create table orders (id not null auto_increment,name varchar(100) not null,email varchar(255) not null,address text not nu... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 5)-添加用户

从这篇开始我们来实现组用户管理功能首先是添加用户   1.     首先我们要创建个表保存用户信息并且生成个对应model  创建表脚本在phpAdmin里执行就可以了:create table users (id not null auto_increment,name varchar(100) not null,hashed_password char(40) null,primary ke... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 6)-登录

现在我们购物车为两种用户提供了服务类是普通用户类是管理员两类用户分别有区别功能上次我们又实现了添加用户功能这次我们来实现登录功能   1.     给login_controller添加login思路方法  上次使用rails命令行生成login_controller中已经包含了login思路方法下面修改该思路方法内容:def login   request.get?  session[:user... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 7)-控制访问权限

上次我们实现了登录页面现在我们区别管理员和普通用户根据用户区别身份转入到区别页面  在rails中提供了filter来截获访问某个action请求可以用filter在action被前或后添加我们自己处理在这里我们在admincontroller中action被前添加拦截器如果是管理员就进入管理页面如果是普通用户就进入登录页面  1.     在application.rb中给Application... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)(十 9)-测试开始

前面我们已经完成了个简单购物车从这篇开始我们看看在rails中怎样进行测试  在我们创建购物车时候在我们depot目录下就已经有个test目录了这就是为我们进行测试准备到目前为止我们看到里面fixtrues和functionalunit目录中已经有对controller和model对应测试文件  我们首先测试下products这个model代码testunit目录下product_test.rb文... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十)-测试model(CRUD)

上篇随笔简单了解了rails测试和测试用数据使用这次来看看怎样对个model进行添删查改测试  1.    还是使用上次写products_test.rb修改test_turth思路方法名字为test_create并且使其内容为: def test_create  assert_kind_of Product, @product  assert_equal 1, @product.id  asse... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十一)-测试Model时的问题

以前随笔都是按照书上例子写下来但是这次在测试Model时按照书上例子代码如何也走不通所以就换个方式这篇变成了提问   按照书上说法在products_test.rb开始时候会根据定义yml文件加载测试数据到个Hash里这样在test时候我们就可以根据yml文件中用例名字来访问个product对象例如:def test_read_with_hashassert_kind_of Product, @p... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 2)-测试Controller

上次测试Modeul问题还没有解决但是下面还要继续这次来测试Controller  1.    在testfunctional目录下rails已经为我们controller生成了对应测试文件要注意application_controller不会生成测试文件我们以控制登录LoginController为例打开login_controller_test.rb内容如下:require File.dirn... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 3)-功能测试的约定

上篇随笔里测试了login_controller我们使用了很多rails内建断言和getput等思路方法来进行测试这次来看看rails在功能测试方面些约定   1.    HTTP请求思路方法(HTTP request method)  下面思路方法用来模拟HTTP请求并得到个回应(response)getputpostdeletehead  这 5个每个都有同样 4个参数以get为例:  get... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 4)-测试Controller

上篇随笔里介绍了rails在功能测试方面些约定这次我们继续会到Controller测试  的前我们测试是login可以相见用户在login以后就要开始进行购物动作了所以我们现在就来测试store_controller我们先来测试index思路方法   1.    在index里我们列出了所有可以销售书籍列表所以这里我们要让store_controller来使用product.yml和orders.... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 5)-测试Controller

这次我们继续测试Controller,还是Store_controller   1.    先来测试测试CheckOut功能给store_controller_test.rb添加代码:def test_checkouttest_add_to_cartget :checkoutassert_response :successassert_not_nil assigns(:order)assert_t... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 6)- 使用Mock对象

前面我们测试了model和controller学习了些常用测试思路方法现在我们来深入学习几个有关测试主题第个是使用Mock对象   在很多时候我们和实际环境有依存关系比如现在购物车在汇款结账时候要接入网络上银行账号这样就造成了我们测试时候必须要有ernet环境比如我们在model目录里创建了个payment_gateway.rb来处理网络银行相关操作我们在store_control.rbsave_... [阅读全文]

rubyonrails:Ruby on rails开发从头来(windows)( 2十 7)- 测试驱动开发

在敏捷开发实战中测试驱动是少不了这篇来看看在rails中个测试驱动开发例子   在前面我们编写并进行了些单元测试和功能测试现在我们客户突然要求添加个功能:系统每个用户都可以对商品进行查询  我们先初步画了些草图来整理我们思路和设计然后开始写代码对于具体实现我们已经有了大致思路但是如果有更多反馈信息话会有助于我们走在正确道路上我们会在深入到代码的前编写测试代码考虑我们代码将怎样工作确定些规约当测试通... [阅读全文]

ruby教程:ruby 数组使用教程

你通过在方括号里列出元素并用逗号将它们相互隔开来创建个. Ruby可以适应区别对象类型  ruby ary = [1, 2, "3"]  [1, 2, "3"]  就像前面提到串样.也可以相乘或相加ruby ary + ["foo", "bar"][1, 2, "3", "foo", "bar"]ruby ary * 2[1, 2, "3", 1, 2, "3"]  我们可用索引来访问任意部分.r... [阅读全文]

字符串处理:Ruby 字符串处理

Ruby将串像数字样处理.我们用单引号(...)或双引号("...")将它们括起来.ruby "abc""abc"ruby abc"abc"  单引号和双引号在某些情况下有区别作用.个由双引号括起来串允许由个前置斜杠引出,而且可以用#{}内嵌表达式.而  单引号括起来串并不会对串作任何解释;你看到是什么便是什么.几个例子:ruby pr "anbnc","n"acnilruby pr anbn,"... [阅读全文]
< 1 2 3 4 5 6 7 8 9 > 共257条 分9页