项目3 报表系统
1.发布时间和 审核时间 查询 加上 日期控件
2.添加 每层级上传功能,下载功能
3.文档列表,加上分页功能
1)发布时间和审核时间查询 加上日期控件http://www.bootcss.com/p/bootstrap-datetimepicker/
1>在app/assets/stylesheets下增加datetimepicker.css/bootstrap-datetimepicker.css等文件,详见链接依赖关系。
2>html.erb文件关键代码如下:
<div class="input-append dateform_datetime"style="float:left;width:20%">
<labelfor="examine_time">审核时间</label>
<inpu tsize="16"style="width:75%" type="text"name="examine_time"value="" class="form-control"id="examine_time"readonly>
<span class="add-on"><iclass="icon-th"></i></span>
</div>
<script type="text/javascript">
$(".form_datetime").datetimepicker({
format: "yyyy-mm-dd hh:ii"#显示格式可选
});
</script>
二)文件上传,doc_controller.rb控制器方法定义如下:
def upload2
require 'fileutils'
tmp = params[:myfile]#参数接收
@filename = tmp.original_filename#取出文件原始名
File.open("#{Rails.root}/public/#{@filename}","wb")do|f|#按路径打开文件,根据rails版本不同{Rails.root}表达方式可能不一样,在此表示当前项目的根路径
f.write(tmp.read)#写入文件
return@filename
end
end
upload.html.erb的views代码如下:
<form action='/doc/upload2'method="post" enctype="multipart/form-data"> #红色部分一定要加
<input type="file"name="myfile" />
<button style="margin-left:49px;width:100px;margin-top:15px;margin-bottom:10px"type="submit"class="btn btn-default">提交</button>
</form>
三)文件下载,doc_controller.rb控制器方法定义如下:
def download
file_path = params[:file_path]#文件路径
file_name = params[:file_name]#文件名称
iffile_path != nil#判断路径是否为空
if File.exist?(file_path)
io=File.open(file_path)
io.binmode#安排文件句柄来读取或写入“二进制”或“文本”
send_data(io.read, :filename => file_name,:disposition => 'attachment')#发送数据
io.close
end
end
end
html.erb文件中链接地址标签如下:<a href="/doc/download?file_path=<%=doc.f_url%>&file_name=<%=doc.f_name%>">下载</a>
四)文档列表加上分页功能
1>数组读取:
@page_num = params[:page_num]#参数为读取第几页的页数
if @page_num == nil#若参数为空
@page_num = 1#则默认为1
end
@page_num =@page_num.gsub(' ','')#去掉string类型数据的前后空格
@page_num =@page_num.to_i#将string转成integer
start_d=(@page_num - 1)*4#第一条要显示的数据
end_d =(@page_num– 1)*4+3#最后一条应显示的数据
注意:去掉字符串前后空格--gsub(““,””),去掉前空格--lstrip,去掉后空格--rstrip
2>分页插件:Kaminari
a,Gemfile文件在“group:assetsdo”添加代码如下:
gem 'kaminari', '~> 0.13.0'
b,doc_cntroller.rb控制器文件中定义方法:
@docssss =Doc.page(params[:page_num]).per(10)#params[:page_num]是默认的
c,new.html.erb文件中加入如下代码:
<divstyle="text-align:right">
<%=paginate@docssss%>
</div>
修改于第四周周五