【发布时间】:2011-06-22 10:38:49
【问题描述】:
我对 Rails 非常陌生,并试图让回形针在我的网站上为用户配置文件工作。我在我的 gemfile 中设置了回形针 gem 并安装了包。我在使用 :has_attached_file 时遇到了问题,所以我使用了 'rails plugin install github/path/to/paperclip.git' 并重新启动了 webrick。在那之后,一切似乎都在渲染我的新表单并让我可以选择上传文件。
当我尝试将照片上传到用户个人资料时,它只会将我带回到用户页面,而不会告诉我它已成功更新,也不会显示我新上传的图片。如果您更改名称或电子邮件地址,它会调整它们。看起来它实际上并没有将图像放入 Github 自述文件中列出的路径中,用于回形针。这里有一些我没有看到的配置文件吗?
我运行了“rails 生成回形针用户照片”,下面是一些相关代码:
来自模型/user.rb
class User < ActiveRecord::Base
attr_accessible :name, :email
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :name, :presence => true,
:length => { :maximum => 50 }
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
#code below tells rails that our users have photos
has_attached_file :photo
end
来自views/users/show.html.erb:
<b>Username: </b><%= @user.name %>
<p><b>Email Address: </b><%= @user.email %></p>
<p><b>Avatar: </b><% if @user.photo? %><%= image_tag @user.photo.url %><% else %>No Photo Uploaded!<% end %></p>
来自views/users/_form.html.erb
<% form_for :user, @user, :url => user_path, :html => { :multipart => true } do |f| %>
<p>
<%= f.label :name.to_s << ': ' %>
<%= f.text_field :name %>
</p>
<p>
<%= f.label 'Email Address:' %>
<%= f.text_field :email %>
</p>
<p>
<%= f.label :Avatar.to_s << ': ' %>
<%= f.file_field :photo %>
</p>
<p>
<%= f.submit 'Save' %>
</p>
<% end %>
编辑:添加控制器代码: 来自控制器/users_controller.rb:
class UsersController < ApplicationController
before_filter :authenticate, :except => [:index]
def new
@user = User.new
end
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
**code removed for brevity**
end
end
end
【问题讨论】: