- 浏览: 16431 次
最新评论
文章列表
需要提供一个接口来判读用户今天是否已经签到
刚开始在customer_sign_in.rb中写了一个类方法,把customer当作一个参数传进去。
customer_sign_in.rb文件中
def self.had_not_signin(customer)
CustomerSigninLog.where(customer_id: customer.id).select {|log| log.created_at > Time.now.at_beginning_of_day } == []
end
CustomerSignInStateDefine文件中
h ...
建立两个表,两个表名分别是change_point_logs和change_point_log_details。建立change_point_logs表与change_point_log_details表的一对多关联。通常情况写会用以下方式实现:
class ChangePointLog < ActiveRecord::Base
has_many :change_point_log_details
end
class ChangePointLogDetail < ActiveRecord::Base
belongs_to :change_point_log ...
[size=medium]
培训之后我对做story的过程有了一个新的认识。
思维上:
接到story之后,首先要清楚自己整体要实现什么功能。然后要把工作细化,分成一个个task,也就是分成几个步骤。
实现每个task的过程:
1.先写出这个task的功能测试,这就是接下来我们的代码要实现的目标。
2.代码实现task,跑测试能够通过。
把这个story的所有task都实现之后,需要做重构,比如说代码的优化,共用方法的抽取。重构中如果抽取出了对外的接口,需要加上这个接口的测试,方便他人使用。
[/size
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="lib/jquery.js"></script>
</head>
<body>
<h3>Study Zone</h3>
<h3>study zone</h3>
</body>
...
今天是我来公司之后第一次给UXshowcase,学到很多东西,总结一下showcase的注意事项,有遗漏或不好的大家告诉我,继续整理:
第一、showcase一开始应该你先总述本次showcase的主要功能点。
第二、演示操作之前,如果是会使数据发生变化的操作,记得先战士原有的数据,然后每次操作操作结束了,再去展示一次数据,来说明本次操作产生的变化。
第三、演示过程中,对一些新建操作的命名要做到见名知意,不可以图简单方便,取1,2,3之类的名字。
第四、演示过程中,边做边演示,做到先说出结果,再显示出操作结果。以此来说明做的功能是正确的。
第五、逻辑要整理好,避免在页面间不必要的一些跳转。
第 ...
需要做两个表的分页显示,两个表在一个页面上,通过切换来交替显示,需要做到两个页面显示的页数互不干扰,也就是说如果表2在第一页,切换到表1,表1选择显示第三页,又切换到表2,需要表2显示第一页。
=will_paginate @first_details, :param_name => 'table1_page', :previous_label => '<<' , :next_label => '>>', renderer: BootstrapPagination::Rails
=will_paginate @second_details, : ...
做练习时需要做这样一件事:给一个div生成两个子节点,分别是a标签和label标签,例如该div的id为'div',a标签的内容是'✔',label标签的内容是'trainningA'。实现方法如下:
var div = document.getElementById('#div');
var a = document.createElement('a');
var label = document.createElement('label');
a.textContent = '✔';
label.textContent = 'trainnin ...
我需要一个下拉箭头(箭头向下),可是又不会让两个v竖着排列,后来才发现是这样实现的。
页面:
%span >>
对应css:
transform: rotate(90deg);
配置js测试环境:
一.安装Karma
Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。
1.在主目录下执行:
mkdir karma
cd karma
npm install -g karma (有的可能需要执行sudo npm install -g karma)
//此时,如果出现error,无法安装。由于karma是基于nodejs的,可能是因为之前安装nodejs的问题,如果之前是直接输入命令sudo apt-get install nodejs 安装的,就会导致安装karma出现问题。需要卸掉nodejs和n ...
1.使用concat可以将两个数组合并为一个数组。
例如:
a = [1,2]
b = ["a", "b"]
a.concat(b) //结果为:[1,2,"a","b"]
a.concat([3,4]) //结果为:[1,2,3,4]
["a", "b"].concat(["c","d"]) 结果为:["a", "b", "c", "d&quo ...
通过今天的讲解对cucumber有了初步的了解,分享一下:
第一、程序员写cucumber时需要更好,更细地了解需求,这样程序员会对整个卡的需求有一个整体的把握,细致的了解。1.可以有效的减少做卡边的过程中才想到某些细节,然后再次确认需求的次数。2.如果拿着写好的cucumber去找UX反讲卡,。既省时又可以有效地避免仅仅是语言沟通带来的需求不明确的问题。3.也可以有效减少程序员做完卡之后一遍遍去页面测试,来确认自己做的点已经全都能做好。
第二、以后想要重构代码时,有了cucumber的保障。1.可以放心大胆的进行修改,不会因为这块代码不是我写的或者写的时间长记不清了而不敢修改。2.看着cucu ...
常用的SQL语句:
一、数据库
1.创建数据库:create database <数据库名>; #数据库名唯一
2.删除数据库:drop database <数据库名>;
3.指定使用的数据库:use <数据库名>;
4.查看数据库:show databases;
二、数据库表
...
MVC是一种使用MVC(Model View Controller 模型-视图-控制器)设计创建Web应用程序的模式。
Model(模型)是应用程序中处理数据逻辑功能的部分,用来实现程序的具体逻辑功能,通常包括数据库中数据的存取。
View(视图)是应用程序中处理数据显示的部分,也就是用户看见的并且可以与之进行交互的界面。
Controller(控制器)是应用程序中处理用户交互的部分,是模型和视图之间交互的纽带,确保了视图和模型的同步。通常控制器接受用户的输入然后调用模型和视图去完成用户的需求,也就是说控制器本身不输出任何东西也不做任何逻辑功能处理。它只是接收请求并决定调用哪个模型构件去处理请求 ...
之前我是在手机上测试程序,但是由于测试程序装在手机上没有root权限,无法处理接收到的报名短信,所以想要安装android模拟器来测试程序,解决发短信报名的问题。
安装android模拟器:首先配置android的环境变量,执行sudo gedit /etc/profile
在打开的文件中,配置android的环境变量,添加以下代码export ANDROID_HOME=/home/jing/soft-install/android-sdk-linux //根据自己安装的android-sdk-linux的路径填写
export PATH=$PATH:$ANDROID_HOME/tools:$ ...
总结一下写测试代码的心得:
1.测试要全面。测试代码要以功能函数为基准,细化每一个测试点。
拿我写测试时的例子来说:我需要生成一个随机的不重复的四位数。
开始时,我只是测试它是不是四位数,然后测试它的每一位有没有重复。但是,后来才知道我的测试不够全面。我需要测试的起码有四点:第一、生成的是数字;第二、这个数字是个四位数;第三、这个数是个随机数;第四、这个数的每一位数字是不重复的。
2.测试就是要拿几个典型的假数据去验证函数功能的正确性。
如果说我要测试两个四位数之间的关系(两个四位数对应位置数字相同的个数为a,两个四位数不对应的位置数字相同的个数为b),判断ab组合的取值有十四种情况 ...