Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
zhangdada
@xiaobai2
Member
NO. 28137 / 2016-08-19

[email protected]
27 Topics / 104 Replies
0 Followers
2 Following
3 Favorites
No GitHub.
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 自定义的 validate 居然在保存成功之后执行了。。。。 at October 10, 2016

    #8 楼 @IChou 我就是正常的 save 逻辑啊,按照你的要求也验证过了,如果我写成>=1 的话,我添加第一条肯定会走 errors.add

  • 自定义的 validate 居然在保存成功之后执行了。。。。 at October 10, 2016

    @tesla_lee @hging @jasl 我改成>=1 了,现在确实只能添加一条数据,我的逻辑是添加成功之后到 render 到 show,他却给出了提示 我的 create 代码大概如下:

    begin
      if @model.save!
        .....
      end
    rescue Exception => e
      render :show
    end
    

    意思就是第一条可以添加成功,但是他也给报这样的验证提示 从逻辑上分析,还是先走了 save!,然后再从验证判断。。。。。 补充一句:如果我写成>=1 的话,我添加第一条肯定会走 errors.add 啊

  • 自定义的 validate 居然在保存成功之后执行了。。。。 at October 09, 2016

    @jasl 首先 validate 确实执行了,我现在怀疑是我 if 条件的问题,可是感觉没问题啊,一个小时之内只能设置一条 send_date。我这有写真的没有看出毛病。。。。。。

  • 自定义的 validate 居然在保存成功之后执行了。。。。 at October 09, 2016

    @Catherine

    validate :only_three_by_day
      def only_three_by_day
        if Notification::Send.where("send_date BETWEEN ? AND ? AND send_status != ?", send_date.beginning_of_day, send_date.end_of_day, 3).count > 3
          errors.add(:id, "一天之内只能发3条!")
        end
      end
    
      validate :only_one_by_hour
      def only_one_by_hour
        if Notification::Send.where("send_date BETWEEN ? AND ? AND send_status != ? ", send_date.beginning_of_hour, send_date.end_of_hour, 3).count > 1
          errors.add(:id, "1个小时之内只能发1条哦!")
        end
      end
    
  • 还是之前那个验证问题,重新捋一遍 at October 09, 2016

    #3 楼 @easonlovewan 居然有 beginning_of_hour,感谢知道了

  • 还是之前那个验证问题,重新捋一遍 at October 09, 2016

    #2 楼 @small_fish__ 什么意思?

  • 还是之前那个验证问题,重新捋一遍 at October 09, 2016

    来个大神吧

  • Rails 如何在 create 的时候有个 confirm 确认框? at October 09, 2016

    #2 楼 @huacnlee 3q

  • Rails 如何在 create 的时候有个 confirm 确认框? at October 09, 2016

    #1 楼 @flowerwrong @huacnlee 我知道这个用法,其实我想问的是,当点击新建按钮时 render 到了 new 页面之后属性值已经做了判断 (这时候肯定是空的),重点是怎么在点击保存的时候重新判断我这个属性的 true 或者 false 来判断是否弹出 confirm,也就是我输入值之后在判断一次(二次判断) 如下: new.html.erb

    <% status = @model.a.present? && @model.b.to_time <= DateTime.current %>
    .....
    <%= f.submit params[:action] == 'new' ? '保存' : '修改', data: { confirm: status ? "你确定提交吗?" : ""}, class: 'btn btn-info back_submit' %>
    

    大概就是上边这样的逻辑,但是这样搞肯定不行的

  • 这个验证怎么写? at October 06, 2016

    一天内的任何一个小时最多只能发一条数据是这么写的

    def only_two_by_hour
        if self.class.where("send_date > ?", 1.hours.ago).count > 1
          errors.add(:id, "1小时最多只能发2条!")
        end
      end
    

    这样写好像不太对,求解

  • 一个 worker 莫名奇妙的不跑了,很奇怪 at September 26, 2016

    #4 楼 @martin91我是晚上十一点的定时,也就隔了不到一天,完了没有跑,我一早就起来看 log,log 里边没有记录,然后 sidekiq 的服务是起来的,我已经翻到昨天的 log 了,昨天任务 B 的 log 也跑了。。。偶滴内心是崩溃滴,然后就重启了一下就恢复正常了。。。。。。出现过两次这样的情况了

  • 一个 worker 莫名奇妙的不跑了,很奇怪 at September 26, 2016

    #1 楼 @michael0015 log 也看了,其它 worker 都执行了,只有这个 worker 没有执行

  • 一个 worker 莫名奇妙的不跑了,很奇怪 at September 26, 2016

    其实就想问一下,可能是什么情况下造成的

  • Ruby 是如何管理内存的? at September 20, 2016

    #5 楼 @hlcfan 哈哈,一张很形象的图片看得我云里雾里,求解释

  • Ruby 是如何管理内存的? at September 19, 2016

    @mizuhashi @blacktulip @small_fish__ 谢谢

  • 为什么的 console reload 之后会有这样的警告? at September 13, 2016

    #1 楼 @lgn21st 这是说我路由写的不规范吗?

  • 这个验证怎么写? at September 07, 2016

    #5 楼 @suffering 非常感谢,已经有思路了

  • 这个验证怎么写? at September 07, 2016

    #1 楼 @lehug 不过还是感觉写个 validate 会比较规范吧

  • 这个验证怎么写? at September 07, 2016

    #2 楼 @suffering 首先感谢你的回答,不过还有两点疑问: 1,new 的时候怎么验证?写一个过滤器吗? 2,我其实想问的是在一天内的任何一个小时不能创建超过两条数据,这个 validate 怎么写?

  • 这些个回调都是什么意思? at September 06, 2016

    #7 楼 @Rei ok

  • 这些个回调都是什么意思? at September 06, 2016

    #6 楼 @tesla_lee ok

  • 这些个回调都是什么意思? at September 06, 2016

    #8 楼 @lgn21st 好的,不太清楚,所以确认一下

  • 这些个回调都是什么意思? at September 06, 2016

    @lgn21st 其实我想问的是

    after_create :set_defult, if: :is_default
    

    这个 is_default 指的是列明还是实例方法?

  • 用了融云的消息推送,遇到一个很苦闷的错误 at August 31, 2016

    #8 楼 @hging 好的,谢谢了😀

  • 用了融云的消息推送,遇到一个很苦闷的错误 at August 31, 2016

    #5 楼 @hging 另外再问大神一个问题,为什么我发送的消息总是延迟很长时间呢?难道是融云那边儿有限制吗?我的测试用户数 140 左右

  • 用了融云的消息推送,遇到一个很苦闷的错误 at August 31, 2016

    #5 楼 @hging 谢谢!解决了

  • 用了融云的消息推送,遇到一个很苦闷的错误 at August 31, 2016

    可还是不对啊,content.to_json 之后还是和之前一样

  • 用了融云的消息推送,遇到一个很苦闷的错误 at August 31, 2016

    #1 楼 @hging 直接把 body 里边的 content to_json 就行了吗?如下:

    body = ({
            'fromUserId' => sendor_id, 'objectName' => object_name, 'content' => content.to_json, 'pushContent' => push_content, 'pushData' => send_date})
    
  • Prev
  • 1
  • 2
  • 3
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English