- 浏览: 242178 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (173)
- ruby (38)
- rails (42)
- javascript (7)
- jquery (1)
- linux (15)
- design patterns (1)
- project management (6)
- IT (7)
- life (19)
- data structures and algorithm analysis (2)
- css (1)
- prototype (1)
- mysql (4)
- html (1)
- git (3)
- novels (1)
- c (1)
- Latex (13)
- erlang (1)
- 求职 (1)
- API (0)
- Shell (4)
- Rabbit MQ (1)
- 计算机基础 (1)
- svn (2)
- 疑问 (1)
最新评论
-
zhangyou1010:
回去倒立去,哈哈。
作为一个程序员,身体很重要! -
Hooopo:
Ruby MetaProgramming is all abo ...
Metaprogramming Ruby -
orcl_zhang:
yiqi1943 写道LZ现在上学还是工作呢工作好多年了。不过 ...
2011年 -
yiqi1943:
LZ现在上学还是工作呢
2011年 -
tjcjc:
query cache
就是一个简单的hash
key就是sq ...
Rails sql延迟加载和自带缓存
今天同事问我关于rails transaction,如果有多个不同表回滚,如何做。我告诉他,就嵌套着写多个transaction,而且十分坚定的告诉他:只写一个是绝对绝对不行的!我以前遇到过,多表回滚的问题,后来就是这样解决的!
同事表示怀疑,去看api,告诉我,我错了,我当时怒了,不可能吧!
经过讨论,又看完api,一起做了一个小测试,证明我确实错了。
很久以前,其实我也不是很明白多表回滚如何实现,记得当时写过一个多表保存,要求有回滚。发现数据更新时有问题,找不到原因。我以为是多表回滚失败导致的,后来看了下面的帖子。http://www.iteye.com/problems/18595google,搜索“rails,多表事务”,第一页第一个就是(JE的SEO做的还是不错的)。当时照着这个方法,加上嵌套的transaction,修改后,测试没问题。所以对此法深信不疑。其实当时的的错误并没有修改,而是没有测试到。
关于rails的多表回滚,只要写一个就可以。api解释如下http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html
现在,大家知道了这个问题的回答是错误的,但是无论是作者还是回答者都无法对问题进行修改。JE的SEO做的不错,我不清楚有多少人会通过google第一页,搜索rails,多表事务来找到这个问答,又有多少人会会被这个帖子误导。
众多人都表示压力很大。只要采纳或者过期就无法编辑。
趁这个机会对问答版块提点建议:
1,对问题答案采纳后也能够进行编辑。
2,最好能够向stackoverflow等网址借鉴些经验,所有用户都可以对问题答案进行一个简单投票,这样大家在看问题回答的时候,可以有重点的查看。并且能够对最终的结果进行一个汇总和编辑,虽然采纳了某个人的答案,但是并不意味这最终的答案是属于这个人的,应该是集思广义,对最后的结果进行一个编辑汇总,这样的结果才是一个最佳的结果。
3,我一直不明白为什么提问题还要积分?用完积分不是就不能提了么?提的问题好应该给加分,但是同时如果这个问题没有任何意义,google一搜一堆结果,同样可以投反对票。
大家有什么好的建议可以一起提出来。我帮忙汇总下。
只要你想找怎么找不到,点两步后退再刷新,不是就看见了么...我倒是很不喜欢csdn那个跳回原来链接的东西,为毛让我等三秒啊
http://hideto.iteye.com/blog/857049
我没有太高要求,只是有一点建议:1,对问题答案采纳后也能够进行编辑,并不难。
je怎么定位是肉饼的事情,我看不出来,我提了意见,执行不执行我就管了。
太差你又跑来这里干什么呢?犯贱?去些体验好的地方吧。
这里好像没人要挽留你啊.你去做个不烂的吧。
我觉得也不方便。
je 改一下 咯
同事表示怀疑,去看api,告诉我,我错了,我当时怒了,不可能吧!
经过讨论,又看完api,一起做了一个小测试,证明我确实错了。
很久以前,其实我也不是很明白多表回滚如何实现,记得当时写过一个多表保存,要求有回滚。发现数据更新时有问题,找不到原因。我以为是多表回滚失败导致的,后来看了下面的帖子。http://www.iteye.com/problems/18595google,搜索“rails,多表事务”,第一页第一个就是(JE的SEO做的还是不错的)。当时照着这个方法,加上嵌套的transaction,修改后,测试没问题。所以对此法深信不疑。其实当时的的错误并没有修改,而是没有测试到。
关于rails的多表回滚,只要写一个就可以。api解释如下http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html
引用
Different Active Record classes in a single transaction
Though the transaction class method is called on some Active Record class, the objects within the transaction block need not all be instances of that class. This is because transactions are per-database connection, not per-model.
In this example a balance record is transactionally saved even though transaction is called on the Account class:
Account.transaction do
balance.save!
account.save!
end
The transaction method is also available as a model instance method. For example, you can also do this:
balance.transaction do
balance.save!
account.save!
end
Though the transaction class method is called on some Active Record class, the objects within the transaction block need not all be instances of that class. This is because transactions are per-database connection, not per-model.
In this example a balance record is transactionally saved even though transaction is called on the Account class:
Account.transaction do
balance.save!
account.save!
end
The transaction method is also available as a model instance method. For example, you can also do this:
balance.transaction do
balance.save!
account.save!
end
现在,大家知道了这个问题的回答是错误的,但是无论是作者还是回答者都无法对问题进行修改。JE的SEO做的不错,我不清楚有多少人会通过google第一页,搜索rails,多表事务来找到这个问答,又有多少人会会被这个帖子误导。
众多人都表示压力很大。只要采纳或者过期就无法编辑。
趁这个机会对问答版块提点建议:
1,对问题答案采纳后也能够进行编辑。
2,最好能够向stackoverflow等网址借鉴些经验,所有用户都可以对问题答案进行一个简单投票,这样大家在看问题回答的时候,可以有重点的查看。并且能够对最终的结果进行一个汇总和编辑,虽然采纳了某个人的答案,但是并不意味这最终的答案是属于这个人的,应该是集思广义,对最后的结果进行一个编辑汇总,这样的结果才是一个最佳的结果。
3,我一直不明白为什么提问题还要积分?用完积分不是就不能提了么?提的问题好应该给加分,但是同时如果这个问题没有任何意义,google一搜一堆结果,同样可以投反对票。
大家有什么好的建议可以一起提出来。我帮忙汇总下。
评论
16 楼
landslide
2011-01-14
baiyuxiong 写道
问答做的烂就不说了。有目共睹。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
只要你想找怎么找不到,点两步后退再刷新,不是就看见了么...我倒是很不喜欢csdn那个跳回原来链接的东西,为毛让我等三秒啊
15 楼
orcl_zhang
2011-01-14
hideto 写道
问答产品要做好不是那么容易的, 不能希望JavaEye把重心都放在问答上,对吧?看JE的战略和野心了,以及和CSDN的关系/各自的侧重点。
http://hideto.iteye.com/blog/857049
我没有太高要求,只是有一点建议:1,对问题答案采纳后也能够进行编辑,并不难。
je怎么定位是肉饼的事情,我看不出来,我提了意见,执行不执行我就管了。
14 楼
麦蒂粉丝
2011-01-13
对,感觉个人还是比较喜欢Javaeye的界面和设计的,知识也更新的比较快.
13 楼
hideto
2011-01-13
问答产品要做好不是那么容易的, 不能希望JavaEye把重心都放在问答上,对吧?看JE的战略和野心了,以及和CSDN的关系/各自的侧重点。
12 楼
ddl1st
2011-01-12
那样做有那样的道理把。 我觉得用户体验还行。 相比其他的技术论坛来说。
11 楼
ddl1st
2011-01-12
成功的引起了一场口水仗。
10 楼
lqixv
2011-01-11
这个建议非常好,大家一起支持一下吧
9 楼
yangguo
2011-01-11
dsjt 写道
说实话je的用户体验太差了
1.登录后只跳转到首页;
2.验证用户是否登录用客户端验证
3.浏览帖子的页面没有发表新帖的链接
1.登录后只跳转到首页;
2.验证用户是否登录用客户端验证
3.浏览帖子的页面没有发表新帖的链接
太差你又跑来这里干什么呢?犯贱?去些体验好的地方吧。
8 楼
yangguo
2011-01-11
baiyuxiong 写道
问答做的烂就不说了。有目共睹。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
这里好像没人要挽留你啊.你去做个不烂的吧。
7 楼
baiyuxiong
2011-01-11
问答做的烂就不说了。有目共睹。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
还有其它
不登录就没有收藏链接,登录后就跳转到首页了,找不到我要收藏的文章在哪里。
6 楼
dsjt
2011-01-11
说实话je的用户体验太差了
1.登录后只跳转到首页;
2.验证用户是否登录用客户端验证
3.浏览帖子的页面没有发表新帖的链接
1.登录后只跳转到首页;
2.验证用户是否登录用客户端验证
3.浏览帖子的页面没有发表新帖的链接
5 楼
buyajun
2011-01-10
ywbanm 写道
JE的问答板块是挺奇怪的,只要采纳了或者过期的问题都不能编辑了,少了很多进一步交流的机会啊。
我觉得也不方便。
je 改一下 咯
4 楼
LikeEJB_CC
2011-01-10
自己写的一个 事务管理器 原理用的 观察者模式(其实一个List也可以搞定)
依靠JDK自带的观察者模式完成
依靠JDK自带的观察者模式完成
/** * 事务观察者 * @author CC */ public class TransactionObserver implements Observer { private Connection conn = null; public void update(Observable obs, Object obj) { try { if ("C".equals(obj)) { if(conn != null){ conn.commit(); } } else if ("R".equals(obj)) { if(conn != null){ conn.rollback(); } } } catch (SQLException e) { e.printStackTrace(); } } public void setConnection(Connection connObj) { this.conn = connObj; } }
/** * 被观察的事务 * @author CC */ public class TransactionObservable extends Observable { public void commit(){ this.setChanged(); this.notifyObservers("C"); } public void rollback(){ this.setChanged(); this.notifyObservers("R"); } }
//设置数据库连接对象事务 private TransactionObservable ooServer = null; TransactionObserver oo = new TransactionObserver(); Connection conn = XXXXXXXX; conn.setAutoCommit(false);// true or false oo.setConnection(conn); this.ooServer.addObserver(oo); //调用 try{ //自己加一个begin事务方法(也就是设置conn.setAutoCommit(false);// true or false) //XXX_1数据库操作 //XXX_2数据库操作 //XXX_3数据库操作 ooServer.commit(); }catch(Exception e){ ooServer.rollback(); }
3 楼
ywbanm
2011-01-09
JE的问答板块是挺奇怪的,只要采纳了或者过期的问题都不能编辑了,少了很多进一步交流的机会啊。
2 楼
tedeyang
2011-01-09
用了也不会错,只要你的数据库事务的传播级别设为PROPAGATION_REQUIRED,嵌套子事务会用最上面的那个transaction。
这个一般是默认值。
这个一般是默认值。
1 楼
night_stalker
2011-01-08
我错了……想改过来都不行了
发表评论
-
calendar
2012-02-24 11:04 862http://fullcalendar.vinsol.com/ ... -
ActiveRecord::Dirty
2011-11-21 10:29 785引用Track unsaved attribute chang ... -
TinyTDS
2011-09-20 09:29 850tiny_tds https://github.com/ra ... -
pandoc-ruby
2011-09-11 11:50 1196https://github.com/alphabetum/p ... -
Rails: Calling render() outside your Controllers
2011-04-28 17:15 830From:http://blog.choonkeat.com/ ... -
为什么这样才能装上
2011-02-20 10:39 1039引用u2@u2-laptop:~$ sudo gem inst ... -
Rails sql延迟加载和自带缓存
2010-12-30 01:11 1609color_lot_manuallies = color_lo ... -
关于rhtml
2010-12-23 00:26 865在视图里有这样一段代码 sorted_op_items = o ... -
will_paginate ajax
2010-11-26 13:21 908两种方法 一, @@pagination_options ... -
save > save!(转)
2010-11-19 19:57 748Thoughtbot folks have a great a ... -
USE INDEX with Active Record finders(转)
2010-11-18 22:07 887可以通过强制指定index的方法优化find MySQL do ... -
html转义
2010-11-17 23:03 951$("#contacts").html(& ... -
Rails HTTP Status Code to Symbol Mapping
2010-11-17 22:40 1619http状态码http://zh.wikipedia.org/ ... -
Scaling Rails很不错的视频
2010-09-29 18:10 819自从railscasts开始讲解rails3后就很久没看了。 ... -
ActionController源码(待续)
2010-09-20 15:14 1019/usr/local/lib/ruby/gems/1.8/ge ... -
rails源码ActionSupport(待续)
2010-08-31 16:59 928一些奇淫技巧 class Object # An ... -
动态的增加auto_complete
2010-08-30 12:17 891http://www.iteye.com/problems/3 ... -
rails 记录
2010-08-26 15:27 736代码里有这样一句 self.purchase_invoices ... -
用Array来实现OrderedHash
2010-08-18 14:29 911偶然发现电脑的角落里有这样的一段代码.功能是用Array实现的 ... -
rails源码ActiveSupport,待续
2010-08-18 14:10 878rails2.3.2 module ActiveSupport ...
相关推荐
尽管InfluxDB本身不支持事务,但`lib/influxdb/rails/transaction.rb`文件通过模拟事务行为,确保在一组操作中的数据一致性。这在处理多个写入操作时尤为重要,可以避免因单个操作失败而导致的数据不一致。 最后,`...
使用`ActiveRecord::Base.transaction`包裹数据更新,可以确保操作的原子性,防止因中间错误导致的数据不一致。此外,通过使用条件查询和事务,任务的效率得到了提高,状态输出也让开发者能够跟踪任务的执行进度。 ...
SeedFu::Seeder.with_transaction do SeedFu::Seeder.seed! 'db/seeds/data/employees.csv', :csv, headers: true end ``` 对于大量数据的处理,Seed Fu还提供了分批插入的功能,避免一次性插入导致的内存占用过大...
Database_Cleaner的配置则会指定清理策略,如`:transaction`或`:truncation`。 **编写测试** 使用Capybara编写测试时,可以使用诸如`visit`、`click_link`、`fill_in`等方法模拟用户行为。例如,我们可以创建一个...
在"ProHunter"这个投资组合应用中,我们可能需要创建用户模型(User)、投资项目模型(Investment),以及交易记录模型(Transaction)。模型定义了数据和行为,例如用户可以有多个投资项目,每个投资项目可以有多条...
8. **事务(Transactions)**: 通过`ActiveRecord::Base.transaction`块,可以确保一组数据库操作要么全部成功,要么全部失败。这对于保持数据一致性至关重要。 9. **动态Finder**: 动态Finder允许根据条件快速查找...
要在Rails日志中查看Log Weasel事务ID,请使用提供的BufferedLogger或自定义记录器的格式以包括LogWeasel::Transaction.id 。 YourApp::Application.configure do config.log_weasel.key = 'YOUR_APP' # Opt
它可以与Ruby on Rails一起使用。 如果您有一个独立的基于ActiveRecord的项目,则需要调用: TransactionRetry.apply_activerecord_patch # after connecting to the database 连接到数据库后。 重试的数据库死锁...
在实现此功能之前,我们首先打开一个Rails控制台会话并手动创建一条记录: post = Post . newpost . title = "Title Goes Here"post . description = "Desc goes here..."post . save 使用此语法,您可以手动创建带...
回调通知包含的信息主要有:支付状态(`paid`)、退款状态(`refunded`)、付款时间(`time_paid`)、退款时间(`time_refunded`)、返回的 charge 编号(`charge_no`)、交易号(`transaction_no`)等。 5. **错误...
您放在 app/models/transaction.rb 中的 API 密钥 例如: PagarMe . api_key = "ak_test_Po52jGJ5XIWiutdmkZc7lpccveMUoh" ; 您放入 app/assets/javascripts/payments.js.coffee 中的加密密钥 例如: PagarMe ....
Ambient transaction Dynamic object Partial update 1:1 1:Many Many:Many relations Auto create table Anti sql injection Multiple data source Object validation Paged selector and collection ...
在这里,可能会有如`Transaction`、`Income`和`Expense`这样的模型,用于代表财务交易、收入和支出。这些模型通常会与数据库中的表相对应,通过ActiveRecord库进行交互,例如定义属性、关联和验证规则。 接着,视...
交易应用-Ruby on Rails Capstone项目 :memo: 内容| | | | | | :face_with_monocle: 关于 该项目基于一个应用程序,该应用程序可按目标与您的家人/朋友对付款进行分组。 该网站的内容是个性化的,即-它可以用于将您...
例如,在漫画市场中,模型可能包括`Comic`、`User`、`Transaction`等,它们负责处理数据验证和数据库交互。 2. **视图(Views)**:呈现用户界面,展示数据和接收用户输入。视图通常使用ERB(Embedded Ruby)模板...
《全面解析Finance_tracker:Ruby on Rails开发实战》 在当今数字化时代,个人财务管理的重要性日益凸显。"Finance_tracker"是一款基于Ruby on Rails框架构建的应用程序,旨在帮助用户追踪和管理他们的财务状况。本...
在Finance Tracker中,模型代表了数据库中的表,比如账户(Account)、交易(Transaction)和类别(Category)。每个模型都有一系列的属性,如账户的名称、余额,交易的日期、金额和类别,类别则可能包括收入、支出等。...
应该模仿与Ruby on Rails中的相同的功能。 如果要侦听事务中模型触发的事件,并且要确保事务成功完成(或回滚),则要使用此方法。 安装 您可以通过composer安装该软件包: composer require mvanduijker/laravel...
在这个财务追踪器中,可能有如`Transaction`、`Account`或`Budget`等模型,用于存储收支记录、账户信息和预算设置。 2. **视图(Views)**:负责展示用户界面,允许用户查看和交互。视图通常由HTML、ERB(嵌入式...
ActiveRecord::Base.transaction do # 执行语句 end ``` 4. **重试机制**:有时,这个错误可能是由于临时的网络问题或服务器繁忙导致的。在这种情况下,可以尝试添加一个重试机制,如果遇到错误,等待一段时间...