• #38 楼 @huacnlee
    之前是指 26 号上午 10 点左右:http://www.webpagetest.org/result/160126_7K_3SM/ 之后是指 26 号下午 3 点左右:http://www.webpagetest.org/result/160126_EC_AAW/1/details/ 可以看到上面那个 10 点的图里面

    //bi-collector.oneapm.com/static/js/bw-loader-411.4.5.js
    

    在加载的时候会阻塞其他的资源下载,所以这个 js 脚本和其他资源不是并行下载的。 下面 3 点左右的图里面 这个 js 脚本是并行加载的。

  • 不知道楼主做了哪些优化?很好奇怎么并行加载不同域的资源文件的? 之前: 之后:

    那个:

    //bi-collector.oneapm.com/static/js/bw-loader-411.4.5.js
    

    脚本之前会阻塞页面,必须它加载完之后,其他的才能加载,改进之后,它和其他资源能够并行加载,好像没有阻塞其他资源的下载,不知道楼主怎么做到的?

  • model:

    create_table "sbs", force: :cascade do |t|
      t.string   "sbname" #设备名称
      t.string   "location" #所在地
      t.datetime "created_at", null: false
      t.datetime "updated_at", null: false
    end
    

    controller :

    def index
       #加载所有数据 
      @sb = Sb.all 
      #获取店名
      @loc = @sb.select(:location).distinct.order("location  ASC")
    end
    

    view :

    <table>
        <tr>
            <th>名称 </th>
            <th> 合计</th>
            <% @loc.each do |loc|   -%>
                <th> <%= loc.location -%></th>
            <% end -%>  
        </tr>
        <tr>         
        <% @sb.select(:sbname).distinct.each do |item| %>
            <td><%= item.sbname -%></td>    
            <td><%=@sb.where(["sbname = ?", item.sbname]).count -%></td>   
            <% @loc.each do |loc|   -%>
              <td><%= @sb.where(["sbname = ? and location = ?", item.sbname,loc.location]).count   -%></td>
            <% end -%>          
        </tr>
        <%end %>
    </table>
    
  • ltotal = 0
    
    ARGV.each do |file|
      begin
        input = File.open(file)
        l = 0
        input.each_line do |line|
          l += 1
          ltotal += l  #最终执行结果为153
          puts "l的值为:#{l}"
          puts "ltotal的值为:#{ltotal}"
        end
        input.close
        ltotal += l   #最终执行结果为17
      rescue =>e
        puts "#{e.message}"
      end
    end
    puts ltotal
    

    你用 puts 看看每次迭代之后的 ltotal 是什么就明白了。这应该是最基本的结构吧。

  • #2 楼 @runup 我用的是 sublime text,字母和数字的颜色是不一样的。一般的文本编辑器都支持的吧。

  • ltotal += l  #最终执行结果为153
    

    字符打错了,该是下面这个:

    ltotal += 1  #最终执行结果为
    
  • puts( { name: 'yzhao',email: '[email protected]'  }.class)
    

    带上括号就行了,不带括号会产生歧义。

  • 学生就算了吧,把国外名校的计算机教材好好学几本,比任何网站都强吧。

  • Ruby China 如何启用 https? at 2016年01月03日

    #4 楼 @seabornlee 是不是客户端缓存的问题?因为你之前访问过这个页面,在你本机有之前 http 的缓存,你现在强制 https 了,但客户端的缓存还是 http 的,所以不能访问?如果把客户端的缓存删除,是不是不用加那个

    config.action_controller.default_asset_host_protocol = :relative
    

    页面也是可以加载的 .

  • Ruby China 如何启用 https? at 2016年01月03日

    #2 楼 @seabornlee ,开启 https 了,但是你页面还是 http 请求的,是不是哪里没配置好呢?重启 Rail Server?

  • Ruby China 如何启用 https? at 2016年01月03日
    upload_url: "https://codingstyle-cn.b0.upaiyun.com"
    

    设置为 https 的话,你在服务端有没有配置呢?我在 git 上看到 ruby-china 是 http 的。

    http://docs.upyun.com/cdn/
    
  • class Project < ActiveRecord::Base
      self.primary_key = "sysid"
    end
    
    Project.primary_key # => "sysid"
    

    http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods.html#method-i-primary_key

  • 可能是里面的中间件 rack 在读取 http header 的时候出了问题,header 应该是一个 hash 对象,包含若干键值对。

  • 一个偷懒的办法是把你代码里面的

    city=[[1,'北京']
    

    改成

    city=[[1,北京]]
    

    也就是把单引号换成双引号。双引号里面的引号用"\"转义一下就行了。

    city="p=\"\u5317\u4EAC,\"
  • :touser => params_hash["openids"],
    

    改成

    :touser => "#{params_hash["openids"]}",
    
  • 试试把

    params_hash["open ids"] = ["XXXXXXXXXXX"]
    

    改成

    params_hash["open ids"] = {"XXXXXXXXXXX", "XXXXXXXXX"}
    
  • 改成这样试一试:

    @orders = Order.order('created_at DESC').paginate :page => params[:page]:per_page => 10
    
  • 可能是由于 win 和 Linux 的编译器不太一样吧。

    take  advantage of features in Unix/Unix-like kernels.
    

    也许作者根本没打算兼容 win。

  • 本人自行删除 at 2015年11月18日
    require 'socket'
    # s1 server ,s2 client 
    s1, s2 = Socket.pair(:INET, :STREAM, 0)
    s1.send "ab", 0
    s1.close
    p s2.recv(10) #=> "ab"
    

    试试这个。

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    
       <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">  
       <link href="css/bootstrap-markdown.min.css" rel="stylesheet" media="screen">
       <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
       <script type="text/javascript" src="js/bootstrap.min.js"></script> 
       <script type="text/javascript" src="js/bootstrap-markdown.js"></script>   
    
    </head>
    <body>
     <form>
        <input name="title" type="text" placeholder="Title?" />
        <textarea id="testlang" name="content" data-provide="markdown" rows="10"></textarea>
        <label class="checkbox">
          <input name="publish" type="checkbox"> Publish
        </label>
        <hr/>
        <button type="submit" class="btn">Submit</button>
      </form>   
    <script type="text/javascript">
    
    (function ($) {
      $.fn.markdown.messages.zh = {
        'Bold': "粗体",
        'Italic': "斜体",
        'Heading': "标题",
        'URL/Link': "链接",
        'Image': "图片",
        'List': "列表",
        'Unordered List': "无序列表",
        'Ordered List': "有序列表",
        'Code': "代码",
        'Quote': "引用",
        'Preview': "预览",
        'strong text': "粗体",
        'emphasized text': "强调",
        'heading text': "标题",
        'enter link description here': "输入链接说明",
        'Insert Hyperlink': "URL地址",
        'enter image description here': "输入图片说明",
        'Insert Image Hyperlink': "图片URL地址",
        'enter image title here': "在这里输入图片标题",
        'list text here': "这里是列表文本",
        'code text here': "这里输入代码",
        'quote here': "这里输入引用文本"
      };
    
    }(jQuery));
     $("#testlang").markdown({language:'zh'});
    </script>
    </body> 
    </html>
    

    上面是我做的测试例子,可以转换中文,你看看是不是少了什么文件,比如 css,js 脚本什么的。

  • #2 楼 @chengkai1853 你把代码改成这样

    $.fn.markdown.messages['zh'] = {
    

    再试一试看看。

  • doc 里面用的是

    $.fn.markdown.messages['fr'] = {
    

    你用的是

    $.fn.markdown.messages.zh = {
    

    还是有点不一样吧。

  • 数据库是空的,找不到记录吧。

  • 因为你的代码里面模型名字和外键名字和约定的不一致,所以才要特别声明。如果不特别声明,Rails 会找不到对应的模型,无法创建关联的。microposts 是按照约定命名的,所以不用特别申明。

  • 意思是 Relationship 的 follower_id 是和 user 的外键吧。要不会冲突。就类似命名空间一样。同时这也是 Rails 的“潜规则”,大家是这么约定的。

  • 为什么不用 GzipReader?

    Zlib::GzipReader.open('hoge.gz') {|gz|
      print gz.read
    }
    
  • form 表单里的字段可以在对应的模型里面做验证的,如果字段为空,提交会报错吧。你干嘛要重定向到新建页面呢?你可以在新建页面给出提示的,不需要转向的。比如你的 form 名字叫 order,那么视图文件对应的应该是,form_for(@order),你发送请求后,根据约定,有一个名为‘order_params’的变量会存储所有的参数值,服务端可以很方便的获取。不需要你通过 URL 拼接的方式传参数。比如你想 在新建页面获取 User 参数,你可以直接通过 params[:user] 获取。