对铁轨上的红宝石很新,并试验一些新的宝石。
所以我的回形针只有加载默认图像的问题。无论我是否选择了一个。
这是我的代码。 模式
create_table "users", force: true do |t|
t.string "name"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string "password_digest"
t.string "remember_token"
t.boolean "admin", default: false
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
end
用户模型:
has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/emptyuser.png"
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
调用show.html.erb
<p>
<%= image_tag @user.image.url(:medium) %>
</p>
用户控制器
def create
@user = User.new(user_params)
if @user.save
sign_in @user
flash[:success] = "Welcome to My App?!"
redirect_to @user
else
render 'new'
end
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
flash[:success] = "Profile updated"
redirect_to @user
else
render 'edit'
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation, :image)
end
我很确定我有它工作,然后当我添加默认图像时我打破了它,现在当我回去时我无法让它工作..
有人知道为什么我的图片没有上传,只加载了默认网址吗?
我想我需要一些睡眠。很抱歉,如果这是一个愚蠢的修复,但我感谢您的帮助。
编辑:感谢链接@hunteros,我在文档中错过了。它现在被保存到默认位置。我将检查是否明确地改变了它们。编辑#2: 这是正确的语法和路径吗? 添加到模型user.rb
:path => ":rails_root/public/system/:class/:image/:id_partition/:style/:filename"
:url => ":rails_root/public/system/:class/:image/:id_partition/:style/:filename"
实际的文件结构如下:system /:class / images(是这个:图像?)/ 000(这里不确定)/ 001 /:样式/实际文件终于
似乎有点激烈。难道他们不能只进入一个该死的目录..?
:path => ":rails_root/public/system/:class/:attachment/:style/:filename",
:url => "/system/:class/:attachment/:style/:filename"
当我调用user.image时,我得到了路径,它似乎匹配,但我仍然看到默认的mage。 图片网址:/system/users/images/medium/sarahanddee.JPG?1394522170
字符串末尾的数字有问题吗?
答案 0 :(得分:1)
首先,在你累的时候不要编码。我认为你必须得到充分的休息才能创造出真正高效的产品。引人注目的软件
其次,您需要测试上传过程,以查看您的图片是否正在上传。如果它存在于您的数据库中,则问题在于您如何调用图像,否则将导致上载过程出现问题
您的default_url
看起来很好 - 也许您可以上传一些应用每次显示“默认”图片时所做请求的日志?
答案 1 :(得分:0)
我只需要从@ user.image.url
中删除@