仅限回形针显示默认图像

时间:2014-03-11 05:06:18

标签: ruby-on-rails ruby paperclip

对铁轨上的红宝石很新,并试验一些新的宝石。

所以我的回形针只有加载默认图像的问题。无论我是否选择了一个。

这是我的代码。 模式

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

字符串末尾的数字有问题吗?

2 个答案:

答案 0 :(得分:1)

首先,在你累的时候不要编码。我认为你必须得到充分的休息才能创造出真正高效的产品。引人注目的软件

其次,您需要测试上传过程,以查看您的图片是否正在上传。如果它存在于您的数据库中,则问题在于您如何调用图像,否则将导致上载过程出现问题

您的default_url看起来很好 - 也许您可以上传一些应用每次显示“默认”图片时所做请求的日志?

答案 1 :(得分:0)

我只需要从@ user.image.url

中删除@