最近几乎所有的web应用里面存在用户上传文件的需求,
可能是一个个性的头像,一个要卖的商品图片或者一些分类的文档。
在过去的一些年里,我们几乎都在用carrierwave或者paperclip去处理Rails的上传,现在在5.2版本里面我们有另外一种方式:ActiveStorage。
什么是Active Storage?
来自他的说明文档:
Active Storage 让上传更简单,通过云服务应用文件如:Amazon S3, Google Cloud Storage or Microsoft Azure Storage,而且attach这些文件到ActiveRecords。支持一个主要服务和镜像在别的服务redundancy,他也提供磁盘服务for testing或者本地开发,但是他重点在于云存储。
ActiveStorage 是一个帮助你处理文件上传的引擎,in yourRailsApps in a very straightforward and easy way.
Set it up
让我们来创建一个rails app示例,我现在假设你已经安装了rails5.2.
rails new catalog
在你开始使用ActiveStorage前,你需要一个数据库表,运行下面的命令安装数据库迁移:
bin/rails active_storage:install
现在你创建产品model通过titlle,然后运行所有的migrations
```
bin/rails generate scaffold products title:string
bin/rails db:migrate
```
附加一个文件到model
现在,我们假设我们每个 Product对象都有一个picture。我们通过has_one_attached 方法去定义这个关系。
class Product < AppicationRecord
has_one_attached :picture
end
我们现在需要在Product定义一个字段,用户能够去指定这个要上传的文件。编辑app/views/products/_form.html.erb找到field定义位置,增加下面的代码:
<%=form.lavel :title >
<%= form.text_field :title %>
<%= form.label :picture %>
<%= form.file_field :picture %>
<%= form.submit %>
还需要在ProductController里面增加‘picture'到运行的参数。
def product_params
params.require(:product).permit(:title, :picture)
end
现在如果你启动服务,导航到/products, 点击’新增‘,输入标题和选择一个图片,你会在development.log里面看到通知:INSERT statement to the active_storate_blobs 表。
找到一些相识的日志如:
ActiveStorage::Attachment Create(0.3ms) INSERT INTO "active_Storage_attachments"("name","record_type","blob_id", "created_at") VALUES(?,?,?,?)[["name","picture"]["record_type", "Product"],["record_id", 4],{"bolb_id", 2],["created_at", "2018......."]]
显示附件
你可以通过调用url_for helper 返回这个附件的url,在我们的案例中在上传完成后显示。编辑app/views/products/index.html.erb,增加下面代码:
你的scaffold会在你上传后显示这个图片。
不同的Storage Stragegies
当你在开发环境侠士,你想保持上传文件在你本地磁盘,但是当你发布时你想使用第三方服务去存储他们,比如Amaon S3,Azure Storage Service 或者Google Cloud Storage。
使用ActiveStorage处理这个非常方便。
在config/storage.yml里面声明不同的环境存储配置。比如:local环境声明’disk‘,生产环境’amazon'
local:
service: Disk
root: <%= Rails.root.join("storage")%>
amazon:
service: S3
access_key_id: AMAZONE KEY
secret_access_key: AMAZON SECRET KEY
然后,在对应的config/environments/*.rb文件里面知道storage来使用。
比如:development.rb
config.active_storate.service = :local
production.rb
config.active_storage.service = :amazon
说明:你可能需要包含额外的gem包,在Gemfile里面,要使用Amazon S3你需要包含aws-sdk-s3
gem "aws-sdk-s3", require: false
更多的功能特点
ActiveStorage还有很多功能,参考官方文档。
你可能感兴趣的:(Rails5.2 ActiveStorage Step by Step)
- Some jenkins settings
SnC_
Jenkins连接到特定gitlabproject的特定branch我采用的方法是在pipeline的script中使用git命令来指定branch。如下:stage('Clonerepository'){steps{gitbranch:'develop',credentialsId:'gitlab-credential-id',url:'http://gitlab.com/repo.git'}}
- 项目:事半功倍的法宝
小小效能
行动的三大流程:记录、排程和执行,也讲了易效能的4D原则以及T-step标签法。这些流程和方法能够解决我们眼前的一地鸡毛,让我们有更多时间和精力去关注更为长远的事情,完成工作、生活和人生中重要的项目。项目管理能够让我们围绕结果去做事情,达成事半功倍的效果,也就是做更少的事情,但达成更好的效果。如果我们能够不断地达成一个又一个的项目,那么我们的人生无疑会像滚雪球一样,在长坡道上面不断积累。一、项目的
- 2019-03-31
梨筱草
图片发自AppIfyouwanttochangesomething,startwithbabysteps.Takeasmallaction-anyaction-andgrowfromthere.如果你想要做出改变,就从第一步开始。做出一点小的行动,任何一种行动都行,然后就从这里开始。Ifyouwanttochangesomething,startwithbabysteps.Takeasmallac
- adb有线连接正常,adb connect失败
cheri--
adbandroid
adbconnect失败1.确认两个设备在同一个局域网2.确认此网络是否有adb连接的权限(有的公司网络不允许adb)3.确认防火墙设置如果前面3步都确认没问题,Pingip也能成功,那么有可能就是端口的问题:step1:先用有线连接设备,执行adbtcpip5555step2:拔掉有线step3:adbconnect192.168.1.105这样大概率就能成功了
- prometheus中step或resolution的含义
iceman1952
prometheus
prometheus官方文档对resolution的解释真是语焉不详,只有下面寥寥几句话Queryingexamples|PrometheusSubqueryReturnthe5-minuterateofthehttp_requests_totalmetricforthepast30minutes,witharesolutionof1minute.rate(http_requests_total[
- ROS 自定义msg
DIO哒
step1$roscd#进入package$mkdirmsg#创建msg目录step2在目录下新建Age.msgstep3修改CMakeList.txtstep4修改package.xml,加入message_generationmessage_runtimestep5到工作空间目录下,catkin_makestep6
- 代号无畏、中情局始祖,破译“恩尼格码”,他才是007真正原型
历史的声音
代号无畏、中情局始祖,破译“恩尼格码”,他才是007真正原型_文章_全历史自从“007”系列小说火了之后,关于詹姆士·邦德真实原型的猜想就没有断过。坊间各种版本层出不穷,但唯一被原作者伊恩·弗莱明盖章的只有威廉·史蒂芬森(WilliamStephenson)。谍报首脑、战斗机飞行员、“X训练营”创始人、英国安全协调局局长、加拿大政府工业发展顾问……这些看似“杰克苏”剧情里的身份,在他的身上合而为一
- java迷宫问题 华为_深度优先搜索——迷宫问题(华为oj)
刘洛希
java迷宫问题华为
题目描述:定义一个二维数组N*M(其中2=n)38continue;39if(a[tx][ty]==0&&book[tx][ty]==0)40{41xy.x=tx;42xy.y=ty;43way.push_back(xy);44book[tx][ty]=1;45dfs(tx,ty,step+1);46book[tx][ty]=0;47way.pop_back();48}49}50return0;5
- 儿童绘画教程|教你用笔画出母鸡抱蛋,0基础手残党也能学会!
画小可
咯咯咯~咯咯咯~母鸡妈妈下蛋啦母鸡妈妈说:我想把这个好消息告诉全世界~等啊等小鸡宝宝们一天天长大了母鸡妈妈开心极了今天画小可特地给大家带来了动物素材大集合——母鸡篇一共有六种不同姿态的鸡妈妈呢~快跟着画小可一起动手吧❀今日份绘画教程❀《母鸡抱蛋》step1用简练的线条画出母鸡妈妈的头部step2画上一筐蛋,鸡蛋是椭圆形的,它们层层叠叠的摆放在筐中step3接着再画出鸡妈妈的圆圆的身体和大大的翅膀s
- 无人机动力系统设计之电调芯片参数选型
lida2003
Physics无人机动力系统ESC
无人机动力系统设计之电调芯片参数选型1.源由2.关键因素2.1电压范围2.2电流处理能力2.3控制方式2.4PWM输出与分辨率2.5通讯接口2.6保护功能2.7支持霍尔传感器与无传感器模式2.8集成度与外围器件2.9效率与散热2.10市场供应与成本3.因素阐述3.1PWM工作频率3.1.1电机控制芯片3.1.2单片机算法定时器(Timers)电机控制部分3.2单片机工作频率Step1定时器频率St
- 2022-05-14
斧正堂
本文我们将深入研究Apes的世界,了解它们的全部内容,以及通过链上数据来了解其炒作是否属实。介绍NFT已经占领了世界。超级昂贵的像素化卡通人物、动漫主题艺术和卡通动物正日益成为加密投资者的首选头像。其中,猿猴类是最具标志性的主题。BoredApeYachtClub(BAYC)已经成为最昂贵、最具影响力的NFT系列。除了拥有超过169万ETH的总市值外,该系列还成功获得了StephenCurry、S
- java头歌-JDBC基础编程练习
To Shine
头歌java开发语言头歌
第1关:JDBC更新员工密码packagestep1;importjava.sql.*;publicclassUpdatePass{//修改数据publicstaticvoidupdateDB(){/*********Begin*********///第一步:加载驱动try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundExc
- Python解方程
Flyforever-Tang
Pythonpython
sympy库用着稍微有点问题,解简单的方程还行,稍微复杂点的结果就不太行,要么打印出了一堆奇怪的东西,要么会运行失败。自己写了一个解方程的函数,原理是穷尽搜索解的值,代码如下。left和right是把等式两边变成函数,x_range是解的搜索范围,step是搜索步长,error是允许的误差。importnumpyasnpdefsolve_equation(left,right,x_range:li
- Pytorch深度学习- Tensorboard的使用以及图像变换transform的使用(小土堆)
Mr chenxizhi
深度学习人工智能python
Tensorboard中的SummaryWriter使用导入数据包fromtorch.utils.tensorboardimportSummaryWriter构造函数方法#那么生成的数据文件都存在于logs文件夹下writer=SummaryWriter("logs")add_scalar代码示例'''tag:数据标题global_step:x轴数据scalar_value:y轴数据'''#运行结
- 李沐55_循环神经网络RNN简洁实现——自学笔记
Rrrrrr900
rnn深度学习神经网络pytorch循环神经网络python李沐
读取《时间机器》数据集!pipinstalld2l!pipinstall--upgraded2l==0.17.5#d2l需要更新importtorchfromtorchimportnnfromtorch.nnimportfunctionalasFfromd2limporttorchasd2lbatch_size,num_steps=32,35train_iter,vocab=d2l.load_da
- gdb常用命令
过好每一天的女胖子
linuxgdblinuxgdb
文章目录1、GDB2、常用命令gdb可执行文件名run(r)/start运行程序break/bclear/deletedisable/enabledisplayjumpwhatisinfothreadbacktrace/btnext(n)/nextistep(s)/stepifinishuntilcallsetprint/plistwatch/awatch/rwatchcatch/tcatchxc
- centos7安装node.js
0981b16f19c7
安装step1:下载node.jswgethttps://npm.taobao.org/mirrors/node/v8.0.0/node-v8.0.0-linux-x64.tar.xzstep2:解压tar-xvfnode-v8.0.0-linux-x64.tar.xzstep3:配置环境变量,便于全局使用ln-s/usr/opt/node-v8.0.0-linux-x64/bin/node/us
- linux多个sh 同时执行命令,sh, 批量执行Linux命令
一颗橙子君
linux多个sh同时执行命令
step1:创建一个sh批处理命令文件#vim/etc/batch_ssh/install_redis.shstep2:给当前用户,能够执行sh脚本权限#chmodinstall_redis.sh777step3:编写要批量执行的命令,read表示等待前端用户输入,sleep表示等待时间单位为秒。echo'\nbegintoinstall01plugin\n';yuminstallcpp-y;ec
- 7.python中列表list的切片操作
别以为你长得帅我就不打你
python开发语言人工智能
7.python中列表list的切片操作在Python中,切片是一种操作序列数据类型(如列表、元组和字符串)的方式。列表切片操作允许我们提取列表的部分元素,生成新的列表。切片的基本语法是list[start:stop:step],其中:start是切片开始索引的位置;stop是切片结束索引的位置,但注意这个位置的元素并不包含在切片中;step是切片每次移动的步长。以上都是可选参数。现在让我提供三个
- C语言——希尔排序
万河归海428
排序算法算法数据结构visualstudioc语言
希尔排序是对于插入排序的一种优化代码:#include#includevoidshell_sort(int*p,intlen){inti;intj;intstep;inttmp;for(step=len/2;step>0;step=step/2){for(i=step;i=0&&tmp
- Java实现建造者模式和源码中的应用 coffee_baby JAVA实现设计模式java建造者模式开发语言
Java实现建造者模式(BuilderPattern)文章目录Java实现建造者模式(BuilderPattern)案例:汉堡制作建造者模式的核心角色代码实现:汉堡制作内部类实现:Step1:产品类BurgerStep2:指挥者DirectorStep3:客户端代码结果总结抽象类实现Step1:产品类BurgerStep2:抽象的Builder类Step3:具体的Builder类Step4:指挥者- 欧洲生存指南 張小兵
今天上午天晴,下午转阴,刮起大风。电脑第一条推送,"StephenHawkingdiesandfloodwarning"。住家Maxine是在大学工作的,我问她今天大学怎么样,她说,还是那样呗,但是BBC已经派人过来四处做采访了,估计会有一场挺大的葬礼。然后,她顿了顿说,再也没有机会在ChristmasDinner碰到霍金啦。早上起来刷手机看到许多小朋友都满有意思的,为这个几千公里外素未谋面的人发- LeetCode之图的广度优先搜索 星夜孤帆 宽度优先算法
433.最小基因变化classSolution{publicintminMutation(Stringstart,Stringend,String[]bank){//将基因库存储在集合中,便于快速查找SetbankSet=newHashSetqueue=newLinkedList<>();queue.offer(start);//记录变换的步骤intsteps=0;//定义基因的四个可变字符cha- pythoncharm安装配置_pycharm的安装与配置 weixin_39887183 pythoncharm安装配置
1.pycharm的下载step1:打开下载网址:http://www.jetbrains.com/pycharm/step2:点击下载按钮。step3:专业版是收费的,社区版是免费的,并且社区版新手使用足够,我们这里下载社区版。2.pycharm的安装pycharm的安装依然是傻瓜化安装,基本一路next,这里只强调一点安装时切记勾选64-bit那么一个选项3.pycharm的入门基础配置ste- 一招get出书技能 效率哥
今天在小仙教练的公众号文章分享了如何筛选出自己的选题从而出书,那就是用好当当网的排行榜,临摹他们的写作格式以及多输出案例这些,那具体是怎么样的操作步骤呢?其实很简单,小仙教练在文中分享以下几点:01找分类,看榜单,提取关键词Step1:找分类ICON球Step2:找到你所感兴趣,适合你写的一本书Step3:透过1本书来找到榜单,例如“当当家教方法畅销榜”Step4:用心看榜单的TOP10及TOP2- 想成为成功者先要有高效能人士的习惯 宇宙公民蘑菇小姐
我是宇宙公民Jessica蘑菇,一朵热爱摇滚,野蛮生长的云南野生菌,今天是我坚持21天每天早上5:30阅读的第16天。习惯伴随每一个人,每一个成功的人都有一个好习惯。做好一件事并不难,难的是养成一种做好事的习惯。今天阅读了《高效能人士的七个习惯》作者:史蒂芬·柯维(StephenR.Covey)作者在书中提出“全面成功才是真正成功”的新思想。本书告诉我们,作为一个成功人士该养成的七个习惯。习惯的引- UE5 半透明阴影 快速解决方案 远离UE4 ue5
Step1:打开该选项Step2:将半透明材质给到模型后,设置光照的ShadowResolutionScale,越大,阴影的效果越好Step3:用这种方式去做,阴影会因为半透明的程度,降低阴影的浓度要做这种效果,需要更多的操作首先放一个半透明的树,一个非半透明的树,将非半透明的树的主通道和深度通道关掉这样非透明的树就消失了,但是阴影还存在,再将半透明的树和关闭通道的树放在一起,就有对应的效果了- Build step ‘Execute shell‘ marked build as failure 玉梅小洋 FAQjenkins
问题现象Jenkins构建时运行脚本报错时:Buildstep'Executeshell'markedbuildasfailureFinished:FAILURE解决方法1.磁盘空间不足导致报错。2.请在执行的shell脚本中第一行加#!/bin/bash#!/bin/bash......注意#!/bin/bash只能放在第一行3.如果2还是不行,那么将#!/bin/bash替换为#!/usr/b- Linux一周大项目:库的移植 Yao_xiiiin. linux运维服务器
挂载--->将所需库文件夹复制到nfs文件夹中(不在终端进行)--->cp库文件到开发板/usr/libstep1step3一、解压文件解压zip文件sudounzipxxx.zip解压tar文件sudotar-xvfxxx.tar修改权限sudochmod0777xxx-R二、配置工程./config--shared--CC--host--prefix等等配置工程生成makefile三、make- python下载numpy库_python怎么下载numpy weixin_39977276 python下载numpy库
安装Pythonstep1:官网下载安装包;https://www.python.org/我下载的是python-3.4.4.msistep2:python环境变量配置;计算机-属性-高级系统设置-环境变量-系统变量找到PATH,点击编辑,加英文分号;在分号后面加上python.exe所在的路径,点击确定。step3:python安装验证W+R运行cmd,打开终端,输入:python显示版本信息表- html 周华华 html
js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){ for(var y=x-1;y<arr.length;y++){ if(arr[x]<arr[y]){ &- 【Struts2 四】Struts2拦截器 bit1129 struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。 Struts2中自定义拦截器的步骤是:- make:cc 命令未找到解决方法 daizj linux命令未知make cc
安装rz sz程序时,报下面错误: [root@slave2 src]# make posix cc -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127 系统:centos 6.6 环境:虚拟机 错误原因:系统未安装gcc,这个是由于在安- Oracle之Job应用 周凡杨 oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。 一:查看相关job信息 1、相关视图 dba_jobs all_jobs user_jobs dba_jobs_running 包含正在运行- 多线程机制 朱辉辉33 多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的- web报表工具FineReport使用中遇到的常见报错及解决办法(一) 老A不折腾 web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。 出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。 1、address pool is full: 含义:地址池满,连接数超过并发数上- mysql rpm安装后没有my.cnf 林鹤霄 没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题 aigo root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/ Step 4: Run ADB command from your PC On the PC, you need install Amazon Fire ADB driver and instal- javascript 中var提升的典型实例 alxw4616 JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m- 定时器和获取时间的使用 百合不是茶 时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多 Timer();定时器 TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。 定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定- JDK1.5 Queue bijian1013 javathreadjava多线程Queue
JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方- http认证原理和https bijian1013 httphttps
一.基础介绍 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后- 【Java范型五】范型继承 bit1129 java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2 package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T- 【Nginx六】nginx.conf常用指令(Directive) bit1129 Directive
1. worker_processes 8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行 nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process- lua 遍历Header头部 ronin47 lua header 遍历
local headers = ngx.req.get_headers() ngx.say("headers begin", "<br/>") ngx.say("Host : ", he- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。 bylijinnan java
import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3- redis 开窍的石头 redis
在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗? comsci java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情- 安装ubuntu14.04登录后花屏了怎么办 cuiyadll ubuntu
这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT + F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo apt-get install fglrx 安装nvidia显卡驱动 sudo ap- SSL 与 数字证书 的基本概念和工作原理 darrenzhu 加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher- Ubuntu设置ip的步骤 dcj3sjt126com ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D- php包管理工具推荐 dcj3sjt126com PHPComposer
http://www.phpcomposer.com/ Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档 入门指南 下载 安装包列表 Composer 中国镜像- Gson使用四(TypeAdapter) eksliang jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述 Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例 例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都- JQM控件之Navbar和Tabs gundumw100 htmlxmlcss
在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu- 利用归并排序算法对大文件进行排序 iwindyforest java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入- iOS UIWebView URL拦截 啸笑天 UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有- 索引的碎片整理SQL语句 macroli sql
SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片- Angularjs同步操作http请求with $promise qiaolevip 每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) {- hibernate联合查询问题 sxj19881213 sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2) 1 几个常识: (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。 (2)hql的默认查询策略,在进行联合查询时,会产- struts2.xml wuai struts
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache - Java实现建造者模式和源码中的应用 coffee_baby JAVA实现设计模式java建造者模式开发语言