• 这样虽然也能达到相同的目的,但是不推荐,eg:

    class Foo < ApplicationRecord
      before_save :foobar
    
      def foobar
        errors.add(:base, "I'm a foo")
        false
      end
    end
    
    begin
      foo = Foo.new
      foo.save!
    rescue => ex
      puts ex # Output as "Failed to save the record"
    end
    

    正确的方法是用validate

    class Foo < ApplicationRecord
      validate :foobar
    
      def foobar
        errors.add(:base, "I'm a foo")
      end
    end
    
  • Hipchat

  • 最好能贴代码出来

  • 这个在4.2的时候就被deprecated了,然后应该是5.0的时候被移除了。

    你可以试试https://github.com/rails/rails/issues/23435里的方法

  • 本机development环境能配置接入redis服务器么?可以啊,和其他环境一样配置啊

  • 但是has_many through的中间表也是要自己建的啊

  • 太长了,所以我都是用habtm。简单易记😎

  • 很多老的项目都用habtm,现在到真的没看到有多少人用 不过has many through也需要中间表啊😂

  • Ruby China 正在衰退吗? at 2017年03月12日

    其实这个标题是不正确的,不是“Ruby China正在衰退吗?”,而是“Ruby正在衰退吗?”。不过这个话题已经在HN,Quora上被讨论过很多次了,Matz和DHH本人也表达过他们个人的想法了。Ruby整体的热度有所减少我觉得是所有在用Ruby的人都能看出来的。不过我不觉得这是个坏事。Ruby一直都是小众语言,这也可以从每年的Tiobe上反映出来,也或许Ruby在架构上站错了边。但是Ruby的Core Team还是在不断的努力在改进(Ruby 3有很多让人兴奋的改进)。还有很多人在尝试让Ruby去有一些别的语言的优势功能(dry-rb, rom-rb, hanami, actioncable)。这些人都还是对Ruby很有激情的。有很多人拿Twitter来backup他们的对于Ruby的观点,但我只想说,有99%的用Ruby的公司不会达到Twitter的等级,而当你达到这个级别的时候,你也会有足够的资金去想改成什么语言就改成什么语言

    虽然我不敢保证我以后会一直用Ruby挣钱(这完全取决于工作),但是就我个人的project,我还是很乐意用ruby来prototype的.

    PS: 虽然很多人说Elixir很热门,不过可以去看下github的trending。Elixir的项目的star,每天寥寥无几。


    当然了,以上我说的只能说明Ruby这个语言本身还会有改进的。但是,有没有未来,完全取决于市场,取决于CTO们。如果大家都决定不用Ruby了,那学Ruby的人会越来越少,这也会直接影响到Ruby Core Team的动力

  • 具体是什么情况我也不知道,不过就我来说吧,如果忘记了那很正常,又不是一直在那里建表。但如果花了一下午还没找到问题那就有点问题了。error提示应该很明显。