`
lihbobo
  • 浏览: 64881 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

file_cloumn 使用过程中遇到的问题汇总

阅读更多
file_column 使用(rails 2.35)
1.ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk/

在model中设定

class Photo < ActiveRecord::Base
  validates_format_of :image,
    :with=>/^.*(.jpg|.JPG|.gif|.GIF)$/,
    :message => "你只能上传JPG或则GIF的图片文件"
  file_column :image, :magick => {
          :versions => { "thumb" => "50x50", "medium" => "640x480>" }
         }   
end

2.修改上传表单可上传文件<% form_for(@photo,:html=>{:multipart=>'true'}) do |f| %>

3.修改上传表单项为

<%= file_column_field 'photo', 'image'  %>

4.为了使上传的文件随机命名修改file_column.rb 中

def self.sanitize_filename(filename)
     filename = File.basename(filename.gsub("\\", "/")) # work-around for IE
     filename.gsub!(/[^a-zA-Z0-9\.\-\+_]/,"_")
     filename = "_#{filename}" if filename =~ /^\.+$/
     filename = "unnamed" if filename.size == 0
     time = Time.now.to_i
     filename = time.to_s + '.' + File.basename(filename).split('.').last
     filename

  end

5.显示图片用url_for_file_column

  <%= image_tag url_for_file_column 'photo', 'image' %>

6.更新也要对表单进行修改

<% form_for(@photo,:html=>{:multipart=>'true'}) do |f| %>

一。file_column问题(rails 2.35)
    undefined method `image_relative_path' for nil:NilClass

把<% @photos.each do |photo| %>改为

<% for photo in @photos %>..
本方法貌似不管用,网上找的解决方案是
<% @photos.each do |photo| %> 后面加上
<% @photo = photo %>
解决了我的问题

2. =====================遇到uninitialized constant FileColumn::ClassMethods::Inflector 错误修改如下

   my_options = FileColumn::init_options(options,    
                Inflector.underscore(self.name).to_s,attr.to_s)

改为:

my_options = FileColumn::init_options(options,    
             ActiveSupport::Inflector.underscore(self.name).to_s, attr.to_s)

不过发现file_column上传失败还是会把文件放下tmp文件夹下,不知道有没有办法不让文件放tmp下,要不越来越大了!
还有其他一些报错的解决方法,Google一下即可,不在一一列举。
个人意见:
如果遇到File_cloumn 已经可以上传文件或者图片但是在一些显示上总是报错,不妨抛弃其给出的方法,自己来定制一些方法,下面这篇文章给出了一些参考:
http://www.iteye.com/topic/198778

分享到:
评论

相关推荐

    ASP.net实例光盘源码:

    Sample_05_03/ButtonKey.aspx DataList控件中使用按钮 Sample_05_03/DatalistCtl.aspx DataList控件 Sample_05_03/dlClick.aspx DataList控件的事件 Sample_05_03/DLColumn.aspx DataList...

    mfc操作exce类

    //获取已使用行数 long GetUsedRows(); //获取已使用列数 long GetUsedColumns(); //获取已使用区域的起始行,从1开始 long GetStartRow(); //已使用区域的起始列,从1开始 long GetStartCloumn(); //获取...

    delphi TRzListView 的用法

    delphi TRzListView 的用法,添加 cloumn、item。

    Add Customer Column For MD04

    Add Customer Column For MD04

    ecdiff:比较两个文件之间Excel的不同列

    埃迪夫比较两个文件之间Excel的不同列##用法由id cloumn java -jar target/ecdiff-0.1-SNAPSHOT.jar -a "src/test/resources/test_1.xlsx" -b "src/test/resources/test_2.xlsx" -aid 0 -bid 0 -ai 1 -bi 1按行 ...

    Flutter-learn

    颤振学习有状态的班级模板import 'package:flutter/material.dart';class AudioPlayerTest ... }}登录系统演示 如何在所有TextField中使用样式带容器的TextField flex在cloumn中的使用将一页导航到另一页重点关注Te

    二、大数据与分布式.pdf

    Key-Value 类型的 NoSQL 数据库存在⼀个弊端,就是⽤户⽆法根据 Value 中的某个属性值查询数 据,因此该类型的数据库只能⽀持对 Key 进⾏简单的查询。 Tip:常见的 Key-Value 类型的 NoSQL 数据库有:Redis、Tokyo ...

    CloudNativeNotes:学习学习学习系统学习云原生年后见

    原云原生专题的仓库已经全部下线目前正在准备专栏撰写,期间即将...结束语对于专题突然下线,而引起小伙伴学习断档的问题,这里先说一下抱歉哈。全新的kubernetes专题,我们年后见。最后提前祝各位:新年快乐,身体健康

    Navicat连接postgreSQL 报错error:column找不到,亲测是Navicat版本不够,下载12版本有用-附件资源

    Navicat连接postgreSQL 报错error:column找不到,亲测是Navicat版本不够,下载12版本有用-附件资源

    多列树性列表视图控件

    treeview和listview结合的控件,含源代码

Global site tag (gtag.js) - Google Analytics