当我有2个对象保存在事务中时
a = A.new(...)
b = B.new(...)
Run Code Online (Sandbox Code Playgroud)
我调用事务方法的模型类是否重要?
A.transaction do
a.save
b.save
end
Run Code Online (Sandbox Code Playgroud)
要么
B.transaction do
a.save
b.save
end
Run Code Online (Sandbox Code Playgroud)
IMNO都使用相同的db事务,因为ActiveRecord只能处理一个连接,因此它无关紧要.那是对的吗?
谢谢,亚历克斯.
这个问题在0.9.8中得到修复,但似乎在1.x分支中再次出现.
在我的Gemfile中,我有一组用于使用rspec gems的测试和开发环境.在我的生产服务器上没有安装rspec.我bundle install --without test development在rails应用程序中使用了该命令
在生产模式下启动我的rails应用程序会出现异常:
无法在Gemfile中列出的任何gem源中找到gem'rspec(> = 0)'.
如果我注释掉测试组,则开发组会发生同样的错误.
如果我在开发模式下启动,则会出现同样的问题,然后它会尝试在测试组中加载gem.
似乎bundler完全忽略了环境组并尝试在Gemfile中加载所有gem:
group :test do
gem "rspec"
end
group :development do
gem "rspec-rails"
end
versions:
bundle 1.0.15
rails 3.0.7
ruby 1.9.2-p180
Run Code Online (Sandbox Code Playgroud) 如何在 Pure-Script 中加载外部 JavaScript 文件?
外部导入语句都内联 javascript 代码,但我想从外部文件加载它们。
如果一个函数及其参数(也是一个函数)都改变了状态,我对状态monad的用法有疑问.
这里是简短信息:
函数foo更改状态
函数bar更改状态
我想打电话:
foo bar
Run Code Online (Sandbox Code Playgroud)
如果我bar单独打电话,状态设置为"bar"
如果我打电话foo bar然后状态只是"foo"而不是"foobar",所以似乎bar没有改变状态,我不明白为什么.
任何澄清表示赞赏.
这是完整的代码:
module Main where
import Control.Monad.State
main :: IO ()
main = do
a <- execStateT test1 ""
print a
a <- execStateT test2 ""
print a
type MyState = String
type MyStateMonadT = StateT MyState IO
test1 :: MyStateMonadT ()
test1 = do
bar
return ()
test2 :: MyStateMonadT ()
test2 = do
foo bar
return ()
data …Run Code Online (Sandbox Code Playgroud)