Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Lixin
@QueXuQ
高级会员
第 3547 位会员 / 2012-09-05

260 篇帖子 / 537 条回帖
7 关注者
0 正在关注
5 收藏
未设置 GitHub 信息。
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月04日

    #12 楼 @pongyo 实际情况是这样的,是一个库存的设计。 已经有入库表,出库表,仓库表了。 操作就是,入库了,入了多少,储存后,通过 callback 保存到仓库表里。 例如今天入了 10 个饼干,我添加入库单信息,保存好后就自动往仓库表里存储了。

    所以不可以出现一些错误,一旦有错误整个仓库就乱掉了,而且还不知道怎么乱的。

    请问要是这样的情况,应该做则呢没有的设计好呢?不用 callback 用什么比较好?

    联系两个的 save 让我很苦恼。

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    #10 楼 @jjym 就是在 controller 里面操作? 我现在就是用 controller 操作,在

    银行卡.save
    存折金额 += 银行卡.存入金额
    存折金额.save
    

    我现在就是都在 controller 里操作的,可是 controller 里怎么 rollback 呢?如果存折金额.save失败了。

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    create 方法设计成这样,不知道好不好?

    def create
      @product = @user.products.build(params[:product])
      begin
        @product.save
        redirect_to @product, notice: 'Product was successfully created.'
      rescue
        render action: "new", notice: 'Product was failure created.'
      end
    end
    

    @jjym 很想了解,这个大哥说的好方法是指怎么设计呢?

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    #7 楼 @lgn21st 谢谢你的提示。

    Started POST "/products" for 127.0.0.1 at 2012-11-03 22:53:04 +0800
    Processing by ProductsController#create as HTML
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"s0THldTdG2+EO+2fiU3yHH49A6LaYiktf9iBTxJVXRg=", "product"=>{"title"=>"Text", "description"=>"text"}, "commit"=>"Create Product"}
      User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
       (0.1ms)  begin transaction
      SQL (9.8ms)  INSERT INTO "products" ("created_at", "description", "title", "updated_at", "user_id") VALUES (?, ?, ?, ?, ?)  [["created_at", Sat, 03 Nov 2012 14:53:04 UTC +00:00], ["description", "text"], ["title", "Text"], ["updated_at", Sat, 03 Nov 2012 14:53:04 UTC +00:00], ["user_id", 1]]
       (0.2ms)  rollback transaction
    Completed 500 Internal Server Error in 21ms
    
    RuntimeError ():
      app/models/product.rb:8:in `judge_create'
      app/controllers/products_controller.rb:54:in `block in create'
      app/controllers/products_controller.rb:53:in `create'
    

    确实是会 rollback,我想请问一下,怎么捕获这个异常呢?刚刚试一下:

    after_create :judge_create
    
    def judge_create
      begin
        raise
      rescue
        puts "Hello!"
      end
    end
    

    如果这样捕获,就会让他顺利存下来了,可是异常是他这里出现的。 怎么样才可以使它

    if @product.save
      format.html { redirect_to @product, notice: 'Product was successfully created.' }
      format.json { render json: @product, status: :created, location: @product }
    else
      format.html { render action: "new" }
      format.json { render json: @product.errors, status: :unprocessable_entity }
    end
    

    运行 else 那段,而不是页面出现异常呢?

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    #5 楼 @lgn21st 恩。这个知道,关键我想不到怎么样存折金额.save!出问题。不好意思。^_^ 我得看看怎么弄弄好。

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    #3 楼 @lgn21st 你发的是关于 after_commit,好像是关于一个执行速度的问题。 其实我不太懂 after_create 什么时候会 rollback。 例如说:存折金额.save!这个要是失败了,自然会有异常,after_create 会不会因为这个异常而 rollback 的?就是只要有一个保存失败,两个都不做保存。

  • after_create 后的 save! 有异常后会直接 rollbacke?新手疑问。 at 2012年11月03日

    #1 楼 @jjym 这样的吗?那请问是应该怎么设计的呢?

  • capistrano 简易速成部署方案 (含 deploy.rb 模板) at 2012年11月03日

    正好用的上,部署成功。。

  • Ruby 2.0 新功能演示 at 2012年11月03日

    什么时候发布 2.0?

  • 关于 ubuntu12.04 下 wiki 中安装 rails 方法的探讨 at 2012年10月29日

    #1 楼 @bwlinux #2 楼 @cxh116 #4 楼 @jjym 同感,我觉得如果新手用这个安装会很累人。建议管理员管理一下。

  • 关于 ubuntu12.04 下 wiki 中安装 rails 方法的探讨 at 2012年10月29日

    #3 楼 @ywjno 恩。这篇好,我以前是按照这个装的,但是最近看到这个新的,我才问一些问题而已。

  • ubuntu12.04 装 passenger 的方法和以前不一样了吗? at 2012年10月28日

    诡异,这样也可以不哦。。。

    deploy@linode:~$ gem install passenger
    Successfully installed passenger-3.0.17
    1 gem installed
    Installing ri documentation for passenger-3.0.17...
    Installing RDoc documentation for passenger-3.0.17...
    deploy@linode:~$ sudo passenger-install-nginx-module
    sudo: passenger-install-nginx-module: command not found
    
  • ubuntu12.04 装 passenger 的方法和以前不一样了吗? at 2012年10月28日

    #1 楼 @oran 恩。官网上是这样说的,可是这个站点的 wiki 上是写用rvmsudo passenger-install-nginx-module,我以前也是用这条命令装的。 http://ruby-china.org/wiki/rvm-guide 不知道两者有什么区别?

  • Restful 的路由中,如何在 url 中传递参数 at 2012年10月28日

    #2 楼 @ruby_sky #3 楼 @chechaoyang 谢谢,这两个方法很不错~

  • 大家是怎么管理你们的 js 的? at 2012年10月25日

    #9 楼 @ashchan Thanks.在用 coffeescript,刚刚才发现原来使用的时候,会自己加在闭包里,之前一直不知道。感激。^_^

  • 大家是怎么管理你们的 js 的? at 2012年10月25日

    #3 楼 @hooopo 谢谢,你说的这个方法是可行的。 #4 楼 @ashchan 恩。对。 #5 楼 @cxh116 第一次见过这个判断方法,奇怪的是怎么进行判断的,title 来判断的吗?还是文件名? #6 楼 @wity_lv 我想问一下 (function() {})() 在这个里面的函数,需要通过什么来调用?如:

    (function() {
      var total_amount;
      total_amount = function() {
        var total;
        total = 0;
        alert(total)
      };
    }).call(this);
    total_amount()  //似乎无法调用
    

    #7 楼 @xds2000 恩。正在用 jQuery

  • 大家是怎么管理你们的 js 的? at 2012年10月25日

    #1 楼 @hooopo 意思就是, 我在.js 文件中写类或者函数

    function xx(){
    }
    

    而只在 html 下的里调用 function,如 slim: <div class="highlight"><pre class="highlight plaintext"><code>javascript: jQuery(function() { xx(); } </code></pre></div> <p>这样,会出现 xx() 方法找不到。 但是如果把 javascript:下的内容放到.js 文件里,就会在所有页面执行一次 xx(),这样觉得不太好,如果内容太多,太消耗内存了。</p>

  • 非常好看的 bootstrap 主题,不知道有谁买过? at 2012年10月25日

    #9 楼 @xiaolai 恩。有道理。哈哈。版权意识差了点。

  • 沉重的产品 at 2012年10月25日

    恩。确实都是怕被复制,觉得除了淘宝,别的都很轻易被复制和超越。 确实国内用户已经习惯那种大混乱的页面了。

  • 沉重的产品 at 2012年10月25日

    同感,像微薄越来越杂了,没有推特简洁。 百度上面更加混乱一片,很快百度首页就变成 hao123 了。

  • 非常好看的 bootstrap 主题,不知道有谁买过? at 2012年10月25日

    听各位这样说,我决定支持正版。自己买一个!^_^

  • where ("id in 14") 和 find (14) 有什么区别? at 2012年10月25日

    #7 楼 @ruby_sky 请问你言下之意,一个查询怎么做是最好的选择?

  • 探讨一个关于细节上设计 view 和 controller 的新手问题 at 2012年10月24日

    #6 楼 @Rei 非常感激,很热心。~^_^

  • 探讨一个关于细节上设计 view 和 controller 的新手问题 at 2012年10月23日

    #1 楼 @Rei 这个很简练! #3 楼 @help5305fff 我想表达的是如果 name 里面有 x,就显示p hello!。如果没有,就不显示。 #4 楼 @itsvoid p 'hello' if each_project.name == 'x'这个应该和@Rei写的是一样概念吧。

  • 上传 Excel 文件,是怎么进行处理的? at 2012年10月23日

    #1 楼 @chunlea https://github.com/voraz/spreadsheet 是这个吗?

    #2 楼 @ywjno 谢谢。

    我有点好奇的是,自己 liunx 服务器上需要不需要装 office?还有,win 下的 office 文件会不会传到 linux 出现差异的。

  • 什么时候需要使用 Available Callbacks? at 2012年10月23日

    #5 楼 @zgm transaction 的用法比较神奇,第一次见,看看怎么样。感激不尽。

  • 什么时候需要使用 Available Callbacks? at 2012年10月22日

    请问有朋友知道这个学问吗?

  • where ("id in 14") 和 find (14) 有什么区别? at 2012年10月22日

    #1 楼 @huacnlee Thanks.原来有这样的差别。

  • 上一页
  • 1
  • 2
  • …
  • 14
  • 15
  • 16
  • 17
  • 18
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English