回形针不会将照片详细信息保存到数据库中

时间:2013-06-08 15:12:09

标签: database ruby-on-rails-3 paperclip

我正在尝试创建新用户并使用回形针上传图片。它将登录,电子邮件和密码传递给数据库,但不传递照片详细信息。任何人都可以看到我错在哪里?我使用rails 3.06和ruby 1.9.2

这是来自show.html.erb

    <div id="pic"><%= image_tag @user.photo.url(:main) %></div> 

这是来自user.rb

class User < ActiveRecord::Base
    attr_accessible :photo
    has_attached_file :photo, :styles => {:small => "70x70>", :main => "250x250>" },
              :url =>  "public/system/photos/:id/:style/:basename.:extension"

这是在edit.html.erb上运行的表单,而new.html.erb表示它不在哪里

     <%= form_for @user, :html => {:multipart => true} do |f| %>
       <div class="field">
        <%= f.label :login %><br />
        <%= f.text_field :login %>
       </div>
      <div class="field">
         <%= f.label :email %><br />
         <%= f.text_field :email %>
      </div>
      <div class="field">
         <%= f.label :password %><br />
         <%= f.text_field :password %>
      </div>
      <p>
         <%= f.file_field :photo %>
      </p>
      <div class="actions">
         <%= f.submit %>
     </div>
    <% end %>

这是来自users_controller.rb

    def create
       @user = User.new
       @user.login = (params[:user][:login])
       @user.email = (params[:user][:email])
       @user.password = (params[:user][:password])
       @user.photo_file_name = (params[:user][:photo_file_name])
       @user.photo_content_type = (params[:user][:photo_content_type])
       @user.photo_file_size = (params[:user][:photo_file_size])

这是终端输出

在2013-06-08 13:18:58 +0100开始为127.0.0.1发布“/ users”   UsersController处理#create as HTML   参数:{“utf8”=&gt;“✓”,“authenticity_token”=&gt;“4Qvx + aPv9fpOQYk7aAv5iupoBA8aPBYelcjQPh4aM2I =”,“user”=&gt; {“login”=&gt;“meme”,“email”=&gt;“ me@me.com“,”“password”=&gt;“[FILTERED]”,“photo”=&gt;#&gt;},“commit”=&gt;“创建用户”}   用户负载(1.1ms)SELECT“users”。* FROM“users”WHERE“users”。“id”= 1 LIMIT 1   用户负载(0.5ms)SELECT“users”。“id”FROM“users”WHERE(“users”。“login”='meme')LIMIT 1   用户负载(0.3ms)SELECT“users”。“id”FROM“users”WHERE(“users”。“email”=“me@me.com”)LIMIT 1   AREL(0.9ms)INSERT INTO“users”(“login”,“email”,“password”,“created_at”,“updated_at”,“photo_file_name”,“photo_content_type”,“photo_file_size”)VALUES('meme',' me@me.com','meme','2013-06-08 12:18:58.686143','2013-06-08 12:18:58.686143',NULL,NULL,NULL) [paperclip]保存附件。

1 个答案:

答案 0 :(得分:0)

在我看来,你正试图为回形针做太多,并且在这个过程中不小心绕过它。我会将创建操作更改为:

def create
  @user = User.new params[:user]
  if @user.save
    ...

作为旁注,new,create和update_attributes方法旨在接收params [:user],因此您不必拥有七行模型属性赋值代码。