话说,十年这水平,很无敌了……这社区没几个有十年经验的……找个远程的工作不难吧,明明我看到招聘帖有在美国澳大利亚什么的,都招远程,多了去……
赞,楼主辛苦了……
更新了解决方案哦!今天早上发现的好帖子!
#11 楼 @yuhaidonghd 哦,谢谢。
主要感觉这两个 gem 文档写得不是很好,所以我一卡住就放弃了。 你写的比较简洁,但我之前已经用其它方法解决这问题了,懒得再换方案了。 见原帖问题二解决方案:抄的 Jasny Bootstrap 的 js 和 css 代码, fileinput.js 和_fileinput.scss
#8 楼 @flowerwrong 额,没明白你想表达什么了…… 我也是啊,先有抽像母类,再来子类。下面是我现在的写法 《base_uploader.rb》
# encoding: utf-8
class BaseUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Override the filename of the uploaded files:
# 参考李华顺的帖子(http://huacnlee.com/blog/carrierwave-upload-store-file-name-config/)
def filename
if original_filename
@name ||= Digest::MD5.hexdigest(current_path)
"#{@name}.#{file.extension}"
end
end
# 调整临时文件的存放路径,默认是再 public 下面
def cache_dir
"#{Rails.root}/tmp/uploads"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
def default_url
# ====== 待修改 ======
# 改为对应不同大小版本的默认图片
# "images/#{version_name}.jpg"
"default-placeholder.jpg"
end
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_white_list
%w(jpg jpeg gif png)
end
end
《logo_uploader.rb》
# encoding: utf-8
class LogoUploader < BaseUploader
# 设置大小
version :normal do
process resize_to_fill: [48, 48]
end
version :small do
process resize_to_fill: [16, 16]
end
version :large do
process resize_to_fill: [96, 96]
end
version :big do
process resize_to_fill: [120, 120]
end
def extension_white_list
%w(jpg jpeg png)
end
end
555,我装了simple_form_fancy_uploads,然后写了下面代码
<%= f.input :logo, as: :image_preview, use_default_url: true %>
上传完图片没啥变化啊…… 这里有个Jasny Bootstrap倒是实现得很漂亮,可是我又不能用两套 bootstrap,要不我去抄下它的相关 js 代码……
#4 楼 @yuhaidonghd 请问simple_form_fancier_uploads和simple_form_fancy_uploads有什么区别?实现的是同一个功能吧? 看到第一个是 9 天前才建的……我应该用第二个吧?
555,理解不了……
我现在的写法,比如我在 something 的 id 为 1 的 object 里存 logo 字段图片,得到的会是 5 个文件
uploads/something/logo/1/4ae9b71e903519e73662775229466559.png
uploads/something/logo/1/big_bf3d504f375eda565f56a109e2d818a3.png
uploads/something/logo/1/large_29da5e316959516fcd8dc7d612d299cf.png
uploads/something/logo/1/normal_50686705ef4f18084c68c906a8baddff.png
uploads/something/logo/1/small_99867caa881638bb224b7f21872ce9d6.png
注:写法是【base_uploader.rb】
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Override the filename of the uploaded files:
# 参考李华顺的帖子(http://huacnlee.com/blog/carrierwave-upload-store-file-name-config/)
def filename
if original_filename
@name ||= Digest::MD5.hexdigest(current_path)
"#{@name}.#{file.extension}"
end
end
话说,我以前不知道 nginx 要对 uploader 设置的,这个我得再花时间好好研究一下……
再问问哦:
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Override the filename of the uploaded files:
# 参考李华顺的帖子(http://huacnlee.com/blog/carrierwave-upload-store-file-name-config/)
def filename
if original_filename
@name ||= Digest::MD5.hexdigest(current_path)
"#{@name}.#{file.extension}"
end
end
可以吗?然后因为都用同一个方法,在子 uploader 上就不再写什么了……
那个头像,你写死了扩展名是jpg
(#{model.id}.jpg),如果我上传的头像图片是 png 怎么办?
「uploads 这个应该是 Nginx 上面配置的」?不懂耶,因为我平时是用 capinstrano3 部署,然后我在项目目录里把 uploads 文件夹放在shared/public/uploads
上面,以便多版本共享,
在「deploy.rb」文件中这么设置:
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system public/uploads}
如果是我本机开发环境,就会在 public/uploads 文件夹下…… 不是这样做的吗?
我也觉得招聘网站跑到 ruby-china 招聘有点奇怪……
记得好像郭达峰介绍过一个 react.js?想学那个……
#15 楼 @flowerwrong 哭,感动,你太牛了…… 我消化消化……
#1 楼 @flowerwrong #2 楼 @ywjno #6 楼 @huobazi #7 楼 @317583395 #12 楼 @chq
这是国家统计局公布的最新县及县以上行政区划代码(截止 2014 年 10 月 31 日) 可是怎么把它批量导入 postgres 啊?
看到这个使用 chinacity 从国家统计局官网取最新城市数据,还是不会……
而且,按道理来说,难道不是应该存成关联关系么?比如我以后要一级筛选省,再根据省筛选出市。 是不是应该三个表,provinces, cities, districts, 然后 cities 里有一个字段是 province_id,districts 表里有一个字段 city_id……
#3 楼 @ninehills 你看看我理解正确没有: 1.被部署服务器只需要 git pull 一个项目,用于部署,不需要修改代码。 2.这个项目是 github 上某群组的私有项目库中的一个,我有 contribute 权限。 3.这种情况下,应该用 deploy key,而不是把服务器的公钥加到群组帐号的 ssh list 里。
#1 楼 @ninehills 没明白。 我服务器的 ssh key 公钥放到私有群组帐号 ssh list 里,那如果有坏人操纵了服务器,他有办法通过 ssh 无密码自动连接而删 github 的代码吗?(我印象中 github 上 repo 都是手工删除的吧?) 但起码一点是它能通过服务器把所有这个私有帐号下面的代码都 git clone 到服务器,然后它再复制走吧?
#9 楼 @huobazi 有道理! 但我不知道怎样算合适自己啊! 从偷懒角度看,最想用@saberma 写的china_city。 从思路上,肯定是觉得存进 sql,然后我的字段用的是 province_id, city_id 最好,因为我要根据城市筛选只属于这个城市的数据,诸如此类,需要关联关系,而不是像电商那样把地址填上,展示就行。
#7 楼 @317583395 #6 楼 @huobazi #5 楼 @pobing #4 楼 @kai1248 #1 楼 @flowerwrong 取数据的时候,是用自己数据库查询快,还是像@saberma 写的china_city用 json 大表查询快?
#3 楼 @quakewang 恩,很好的思路,谢谢:)