2016.11.17

Objective

今天修复了一些 bug,新增了一个同步部门信息的功能。

如果 link_to 设置了 disable_with 就无法使用 jquery 来修改 link_to 在 disable 时的 text。

当需要传入到方法中的参数过多时有两种办法来“减少”参数:

  1. 使用 hash。
  2. 使用 class。(包含动作时)

Reflective

昨天熬夜导致今天的白天很困,情绪还算平稳。

Interpretive

今天领悟到好奇心的重要性,去学习自己真正感兴趣的东西,会学的很快还不会感到痛苦。

Decisional

今天的效率很高,是很棒的一天。

2016.11.13

Objective

修改 checkbox 的是否选中状态以及 button 是否可点击状态时要使用 prop 比如 prop('disabled', true)。

使用 jquery 的 append 方法会在调用 append 的方法的元素后添加一个空格,使用 after 不会添加空格。

测试中的 stubs 和 mocks:

Stubs

For replacing a method with code that returns a specified result.

Mocks

A stub with an assertion that the method gets called.

二者都是用来模拟调用外部的方法(不去调用外部的方法),不去执行外部方法的方法体,直接设置返回值的内容或者操作的结果。mocks 可以用来判断是外部方法是否真的被调用。

使用 SJR 来进行局部更新可以省区编写复杂的 dom 操作。

Reflective

今天接触一个新的教学平台 上面有很多诸如人工智能、机器学习等比较前沿的课程,教学方式也很独特,“作业系统”体验也很棒,感兴趣的可以去试一下,使用我的优惠码 47F2CAA2 可以立减 300 元。

Interpretive

今天主要学习了一些零碎的知识点。

Decisional

今天是有收获的一天。

20161111

Objective

今天对部分 service 进行了重构,将大的 Job 拆分成小的独立的 Job,这样做可以避免由于 Job 过大而造成系统卡死。 由于需要传递给 Job 的参数过多,我使用一个 ActiveMode 来保存 Job 需要的参数并通过 ActiveModelJSONSerializer 来把参数序列化。具体方法见:ActiveModelJSONSerializer
还对批量操作对界面进行了改进。

Reflective

今天情绪很平静。

Interpretive

今天意识到一点:有些牛人需要好的“问题”去刺激,你有好的问题,他才会更有动力或者说才会反馈给你更多。

Decisional

今天效率提升了一些,基本上把任务都清理了。但是由于中午没有午休,晚上的时候有些困意。还是要注意劳逸结合。

20161109

Objective

關於今天的課程, 你記得什麼?
完成了什麼?

知人项目中的 route 好多设置了 shallow:true 之前一直不了解是干嘛的,今天通过测试了解了。 shallow 的主要功能就是当嵌套的层级过多时,在保留层级关系的情况下缩短访问路径的长度。上图:

没有配置 shallow 的 routes:

Read on

Pudit

pundit 是干嘛的?

权限认证系统。比如,限制只有管理员才可以删帖子,HR 才可以查看员工的工资等等。

怎么安装?

  1. gem "pundit"
  2. 在 application controller 里引入 pundit。
    class ApplicationController < ActionController::Base
    include Pundit
    protect_from_forgery with: :exception
    # other thing
    
    end
    
  3. rails g pundit:install 会生成 app/policies/application_policy.rb 文件, 建议将所有的 police 文件都放在 app/policies 下。
  4. rails g pundit:policy xxxx

如何使用?

Read on

SSLCertificateNotVerified

Objective

今天主要解决了 restClient::SSLCertificateNotVerified 这个错误。这个错误是在通过 RestClient 使用 HTTPS 协议发送 POST 数据的时候产生的,最中问题是本地的 .gem 文件没有包含对方网站使用的 CA 验证信息。对方使用的是 GeoTrust下载地址 下载相应的认证信息添加到本地的 .gem 文件中即可。

相关解答:

  1. 一则 Ruby 和 OpenSSL CA 证书的问题
  2. RestClient::SSLCertificateNotVerified certificate verify failed

验证 ssl 链接的工具:

ssh-tools

Reflective

今天白天没什么波动,有点没精打采,下午遇到上述 bug 之后变得极度烦躁,后来逐步恢复平静。

Interpretive

遇到问题最有快的方式是找老手,但是老手未必愿意帮你,但 Google 会始终愿意帮你。

Decisional

今天效率不是很高,解决 bug 耗费了太长时间,要逐步解决问题的提高效率。

rails-test-01

执行 rails test 的时候会将 fixtures 下的数据装入数据库,等测试完成之后会将数据库恢复到测试前的状态。

css-sprites

Image Replacement

add descriptive text to image-replaced elements, user text-indent hides the placeholder text:

<a href="#" class="logo">Seven's bed</a>

.logo {
  background: url(logo.png);
  display: block;
  height: 100px;
  width: 200px;
  text-indent: -9999px;
}

sprites

.logo {
  background: url(logo.png);
  display: block;
  height: 100px;
  width: 200px;
  text-indent: -9999px;
}

.logo:hover, .logo:focus {
  background-position: 0 -100px;
}

实现只加载一张图片,通过坐标来显示不同的图片。

css-imageuse

图片处理

<ul>
  <li class="crop">
    <img src="black.jpg" alt="black pic"/>
  </li>
  <li class="crop">
    <img src="red.jpg" alt="red pic"/>
  </li>
  <li class="crop">
    <img src="blue.jpg" alt="blue pic"/>
  </li>
</ul>

让图片不会被压缩,还可以统一图片的高度

.crop {
  height: 300px;
  width: 400px;
  overflow: hidden;
}

.crop img {
  height: 300px;
  width: auto;
}

更好的办法

  • 将图片调整到高度小于图片本身的高度,宽度等于图片的宽度。
  • 在服务端进行 resize。
  • 上传图片是对图片进行剪切。