根据 alfredo 在您的模型中的回答,以便为不同的模型保存不同的样式 - 类似于 Paperclip 的默认设置:
has_attached_file :image,
:url => "/uploads/:class/:attachment/:id/:style_:filename",
:path => ":rails_root/public/uploads/:class/:attachment/:id/:style_:filename"
快速解释:
- :rails_root 将是你的 Rails 根
- :class 将是您的图像模型的名称(复数形式)
- :attachment 将是字段的名称(复数形式)
- :id 将是模型的当前 id
- :style_ 将是您为图像定义的样式(例如拇指、原始等)
- :filename 将是文件夹中的最终文件名(rails_root 是您的 rails 根目录,class 通常是您的模型的名称,附件是字段的名称,id 是模型的 id,style 是您定义的样式 - thumb 等 - 文件名是图像的文件名)
注意 /assets/ 到 /uploads/ 文件夹的变化。根据您的 git 配置,资产文件夹可能会被删除。
最后,在 /.openshift/action_hooks/deploy 文件的末尾:
STORED_ASSETS="${OPENSHIFT_DATA_DIR}/uploads" LIVE_ASSETS="${OPENSHIFT_REPO_DIR}/public/uploads"
# Ensure our stored assets directory exists
if [ ! -d "${STORED_ASSETS}" ]; then
echo " Creating permanent assets directory"
mkdir "${STORED_ASSETS}"
fi
# Create symlink to stored assets unless we're uploading our own assets
if [ -d "${LIVE_ASSETS}" ]; then
echo " WARNING: Assets included in git repository, not using stored assets"
else
echo " Restoring stored assets"
ln -sf "${STORED_ASSETS}" "${LIVE_ASSETS}"
fi