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 已经可以上传文件或者图片但是在一些显示上总是报错,不妨抛弃其给出的方法,自己来定制一些方法,下面这篇文章给出了一些参考:
[url]http://www.iteye.com/topic/198778[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值