MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

通常,更新操作在结束时会重定向到其它action。那么如何在重定向过程中保证状态消息不会丢失呢?如果将状态消息保存到成员变量中,会导致这一消息在 重定向后丢失。而使用session来作为保存机制虽然可行,但开发人员必须在随后执行清理session这一很容易被遗漏的操作。因此,Rails提供 了flash作为解决方案。使用flash时,消息首先被保存到session中,以便本次重定向可以使用。而在下一次重定向后,Rails会自动在 session中清理该消息。从而有效地解决了更新操作的状态信息在重定向时的保存问题。
http://www.infoq.com/cn/articles/rails-for-java-excerpt
http://jbf034.javaeye.com/blog/222730

posted @ 2010-02-15 18:34 leekiang 阅读(258) | 评论 (0)编辑 收藏

http://jbf034.javaeye.com/blog/222755

posted @ 2010-02-15 18:34 leekiang 阅读(266) | 评论 (0)编辑 收藏

Java开发者的Rails之路
Rails for Java Developers

posted @ 2010-02-15 03:19 leekiang 阅读(239) | 评论 (0)编辑 收藏

1,ORM已经过时了http://www.javaeye.com/articles/2266
  http://codemonkeyism.com/orms/
2,http://corte.si/posts/code/farewell-to-orms.html
3,http://andyhu1007.javaeye.com/blog/636063
http://blog.csdn.net/chelsea/archive/2009/12/28/5094652.aspx

posted @ 2010-02-14 21:22 leekiang 阅读(280) | 评论 (0)编辑 收藏


至于easymock之外的选择,我个人比较喜欢和推崇jmockit,mocito虽然也不错不过有了jmockit我就pass掉mockito了。
只是每次看到项目代码中,用easymock有record,replay却不调用verify时,就觉得郁闷。这样的testcase,就算通过了,又能说明什么?

Mock通常很少考虑复用,每个mock对象通过都是遵循"just enough"原则,一般只适用于当前测试方法。因此每个测试方法都必须实现自己的mock逻辑,当然在同一个测试类中还是可以有一些简单的初始化逻辑可以复用。
stub则通常比较方便复用,尤其是一些通用的stub,比如jdbc连接之类。spring框架就为此提供了大量的stub来方便测试,不过很遗憾的是,它的名字用错了:spring-mock
mock和stub的最重要的区别:expectiation/期望。 对于mock来说,expectiation是重中之重:我们期待方法有没有被调用,期待适当的参数,期待调用的次数,甚至期待多个mock之间的调用顺序。所有的一切期待都是事先准备好,在测试过程中和测试结束后验证是否和预期的一致。
而对于stub,通常都不会关注expectiation


easymock教程-mock和stub
http://www.javaeye.com/topic/21630
单元测试框架JMock与Mockito的用法比较
http://javasee.iteye.com/blog/1000868
http://hyjun.iteye.com/blog/337206
单元测试mock:用JMockit写单元测试实例
http://gojko.net/2009/10/23/mockito-in-six-easy-examples/

posted @ 2010-02-14 21:20 leekiang 阅读(297) | 评论 (0)编辑 收藏

 一个带完整的RBAC授权系统的rails应用
http://www.javaeye.com/topic/215074

RESTful_ACL


declarative_authorization
aegis
cancan           http://github.com/ryanb/cancan
Authologic
acl9             http://github.com/be9/acl9
role_requirement http://github.com/timcharper/role_requirement
ActiveRbac


restful_authentication
1,ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
项目右键->rails 插件->资源库里添加url:http://svn.techno-weenie.net/projects/plugins
->新插件里找到restful_authentication然后安装
2, ruby script/generate authenticated user sessions
Right-click on your application in the projects pane and choose  
"Generate". In the dialog box that comes up, choose "authenticated"  
from the drop-down "Generator" menu near the top, and in the arguments  
field enter "user sessions" (without the quotes). Hit OK.
----------------------------------------------------------------------
Don't forget to:

Try these for some familiar login URLs if you like:

map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => nil
map.signup '/signup', :controller => 'users', :action => 'new'
map.login '/login', :controller => 'sessions', :action => 'new'
map.logout '/logout', :controller => 'sessions', :action => 'destroy'

----------------------------------------------------------------------
      create  app/views/sessions
      create  app/views/users
      create  app/models/user.rb
      create  app/controllers/sessions_controller.rb
      create  app/controllers/users_controller.rb
      create  lib/authenticated_system.rb
      create  lib/authenticated_test_helper.rb
      create  test/functional/sessions_controller_test.rb
      create  test/functional/users_controller_test.rb
      create  test/unit/user_test.rb
      create  test/fixtures/users.yml
      create  app/helpers/sessions_helper.rb
      create  app/helpers/users_helper.rb
      create  app/views/sessions/new.html.erb
      create  app/views/users/new.html.erb
      create  db/migrate/20100218184435_create_users.rb
      route  map.resource :session
      route  map.resources :users

运行测试时要把SessionsControllerTest和UsersControllerTest都改为继承ActionController::TestCase,同时把fixtures :users注释掉。

要使用current_user和logged_in? helper方法的话要在ApplicationController里include AuthenticatedSystem 

resource与resources的区别见http://api.rubyonrails.org/classes/ActionController/Resources.html

http://www.javaeye.com/topic/353831
http://www.javaeye.com/topic/177508
http://hideto.javaeye.com/blog/115157
https://github.com/nakajima/roleful

posted @ 2010-02-14 21:00 leekiang 阅读(567) | 评论 (0)编辑 收藏

http://www.pragprog.com/wikis/wiki/ChangesInRails23
1, app/controllers下的application.rb is now application_controller.rb

posted @ 2010-02-14 18:51 leekiang 阅读(301) | 评论 (0)编辑 收藏

1,http://kyoleelqh.javaeye.com/blog/169857

2,Scribbish

posted @ 2010-02-14 18:28 leekiang 阅读(324) | 评论 (0)编辑 收藏

http://m.onkey.org/2010/1/22/active-record-query-interface
http://www.pragprog.com/wikis/wiki/ChangesInRails30

posted @ 2010-02-14 17:58 leekiang 阅读(260) | 评论 (0)编辑 收藏

1,要在控制台输出log,在environment.rb里加:
config.log_level = :debug
config.logger = Logger.new(STDERR)
同时在controller里加一行logger.info 'test'
成功了,但奇怪的是log_level设为dubug和info没有区别

2, http://wordpress.javaeye.com/blog/134544
rails的日志文件存在于app/log下面。对于不同环境产生的日志内容会有差别。development下会把每次对数据库的访问代码包含进去,production会省略,不过也有很多的内容。 如果只希望在production环境下,输入少量的log, 则只需要在config/environments/production.rb中更改:
config.log_level = :warn

附带log level:
Rails可以通过选择不同的log level来控制log文件的输出,可以使用的log level有:debug, :info, :warn, :error, :fatal。 :debug level提供最详细的log, 可以将每一条sql都记录下来。:info level是production环境下的默认设置,不会写出sql的执行情况,但也会很详细,如果是ActiveMailer,它会记录下每封信的内容,Log文件内容就是快速增长。为了避免Log把空间塞满的情况发生,要注意定期清除Log,另外是选择:warn level等log level, 只记录重要的信息.

是否可以这么说:environment.rb对三个环境都生效,production.rb只对生产环境有效.


3,在单元测试类的方法里加了logger.dubug 'test',执行测试时报错,后改为
RAILS_DEFAULT_LOGGER.debug 'test' 成功。


Rails Logging Tips —— Rails写日志的提示http://www.cgpad.com/SPAN/articles_show/167
http://hlee.javaeye.com/blog/358516

posted @ 2010-02-14 02:24 leekiang 阅读(811) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 16 17 18 19 20 21 22 23 24 下一页 Last