首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails + SWFupload =

Rails + SWFupload =
EN

Stack Overflow用户
提问于 2011-10-07 16:51:13
回答 1查看 289关注 0票数 0

我的模型:(使用mysql,我有字段:id, name, image, remote_image_url, created_at, updated_at)

代码语言:javascript
复制
require 'mime/types'
class Avatar < ActiveRecord::Base            

 has_attached_file :image, :styles => { :small => "150x150>", :large=> "320x240>" }

def swfupload_file=(data)
    data.content_type = MIME::Types.type_for(data.original_filename)
    self.image = data
  end

end

控制器

代码语言:javascript
复制
  def upload
    if params[:Filedata]
      @avatar = Avatar.new(:swf_uploaded_data => params[:Filedata])
      if @avatar.save
        render :partial => 'photo', :object => @avatar
      else
        render :text => "error"
      end
    else
      @avatar = Avatar.new params[:image]
      if @avatar.save
        flash[:notice] = 'Your photo has been uploaded!'
        redirect_to photos_path
      else
        render :action => :new
      end
    end
  end

Index.html.erb

代码语言:javascript
复制
<head>
  <title>.test.</title>
  <%=swfupload_head %>
</head>
<br/><br/>
<%=swfupload :controller=>'test',:action=>'upload'%>

===================================

而且我有

代码语言:javascript
复制
Processing TestController#upload (for 127.0.0.1 at 2011-10-07 11:46:29) [POST]
  Parameters: {"request_forgery_protection_token"=>"T2KBI+Wk16fhYHSxUh5HRH72LTIdK//327yuuRkWrqs=", "Filename"=>"bg-body2.jpg", "_test_for_projects_session"=>"BAh7BzoPc2Vzc2lvbl9pZCIlNmU3MGQxMzYzOWI5ZWNmYTk5YzQ4YTU3MWM2YzM3ZDk6EF9jc3JmX3Rva2VuIjFUMktCSStXazE2ZmhZSFN4VWg1SFJINzJMVElkSy8vMzI3eXV1UmtXcnFzPQ==--1084bd5f8d5dd4378a3a40a4e35559875881b6fd", "amp"=>nil, "authenticity_token"=>"T2KBI+Wk16fhYHSxUh5HRH72LTIdK//327yuuRkWrqs=", "Upload"=>"Submit Query", "Filedata"=>#<File:/tmp/RackMultipart20111007-7833-1ryc6s-0>}
  SQL (1.9ms)   SHOW TABLES
  Avatar Columns (1.0ms)   SHOW FIELDS FROM `avatars`
  SQL (1.7ms)   SHOW TABLES
  Avatar Columns (1.0ms)   SHOW FIELDS FROM `avatars`

NoMethodError (undefined method `has_attached_file' for #<Class:0x7ffdca03a7a8>):
  app/models/avatar.rb:35
  app/controllers/test_controller.rb:6:in `upload'

Rendered rescues/_trace (78.6ms)
Rendered rescues/_request_and_response (0.4ms)
Rendering rescues/layout (internal_server_error)

======

问:为什么是NoMethodError?为什么数据没有插入到数据库中?

更新:

我在模型attached_file中删除...现在插入了数据,但是..在此视图中:

代码语言:javascript
复制
Processing TestController#upload (for 127.0.0.1 at 2011-10-07 12:12:31) [POST]
  Parameters: {"request_forgery_protection_token"=>"T2KBI+Wk16fhYHSxUh5HRH72LTIdK//327yuuRkWrqs=", "Filename"=>"Firefox_wallpaper.png", "_test_for_projects_session"=>"BAh7BzoPc2Vzc2lvbl9pZCIlNmU3MGQxMzYzOWI5ZWNmYTk5YzQ4YTU3MWM2YzM3ZDk6EF9jc3JmX3Rva2VuIjFUMktCSStXazE2ZmhZSFN4VWg1SFJINzJMVElkSy8vMzI3eXV1UmtXcnFzPQ==--1084bd5f8d5dd4378a3a40a4e35559875881b6fd", "amp"=>nil, "authenticity_token"=>"T2KBI+Wk16fhYHSxUh5HRH72LTIdK//327yuuRkWrqs=", "Upload"=>"Submit Query", "Filedata"=>#<File:/tmp/RackMultipart20111007-7833-1jylds4-0>}
  Avatar Columns (1.1ms)   SHOW FIELDS FROM `avatars`
  SQL (0.6ms)   BEGIN
  Avatar Create (0.8ms)   INSERT INTO `avatars` (`name`, `remote_image_url`, `created_at`, `updated_at`, `image`) VALUES('', '', '2011-10-07 09:12:31', '2011-10-07 09:12:31', '--- !ruby/object:File {}\n\n')
EN

回答 1

Stack Overflow用户

发布于 2013-06-08 11:50:38

下面是插件:https://github.com/jeroeningen/swfupload_45north

has_attached_file是给attachment_fu带来生机的方法。

gem假设您了解attachment_fu。它不是插件的一部分。这部分你得自己去做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7684963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档