1。下载,安装插件:
两种办法,一种是在线安装,命令:
ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/
一种是,直接下载软件包:file-column-0.3.1.tar.gz
将其释放到目录:\vendor\plugins\file_column\ 下
*注:安装可能会出现很多问题,可能是提示“no such methods 'file_column'","no such file ....."等等,包下载到路径下后,试图重启一下服务呢,我也不知道怎么的,倒来到去就成功了。
2。Model
创建表:mysql> create table entries(id int not null auto_increment,
-> image varchar(255) not null,primary key(id));
Query OK, 0 rows affected (0.11 sec)
创建model:
class Entry < ActiveRecord::Base
file_column :image
end
3。Controller
创建一个controller:
class EntryController < ApplicationController
....
在controller里,几乎不用做任何事情
4。View
生成View: scaffold
修改:_form.rhtml
<!--[form:entry]-->
<p><label for="entry_image">Image</label><br/>
<%= file_column_field "entry", "image" %>
</p>
<!--[eoform:entry]-->
修改:new.rhtml
<%= form_tag( { :action => 'create' }, :multipart => true ) %>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<% end_form_tag %>
*注:上面的代码是经过辗转反侧,千百遍测试,成功的。不能是:
<%= form_tag( :action => 'do_image_upload', :multipart => true ) %> 也不能是:
<%= form_tag { :action => 'do_image_upload' }, :multipart => true %> 否则报错:
Do not know how to handle a string with value .....
修改:show.rhtml
<%= image_tag url_for_file_column("entry", "image") %>
修改:edit.rhtml
#原来:
<% form_tag :action => 'update', :id => @entry do %>
<%= render :partial => 'form' %>
<%= submit_tag 'Edit' %>
<% end %>
#修改后
<%= form_tag( {:action => 'update', :id => @entry},:multipart =>true ) %>
<%= render :partial => 'form' %>
<%= submit_tag 'Edit' %>
<% end_form_tag %>
#注意任何一点细节:<%= 而不是<%, form_tag( {block}, :multipart=>true) 而不是其他,<% end_form_tag %> 而不是<% end %> 或<% end_tag %>
================
哎,学rails真不容易啊,出点错,找遍全球的答案,也找不到。
================
新增内容:创建缩略图
修改Model:
class Entry < ActiveRecord::Base
validates_format_of :image,
:with=>/^.*(.jpg|.JPG|.gif|.GIF)$/,
:message => "你只能上传JPG或则GIF的图片文件"
file_column :image, :magick => {
:versions => { "thumb" => "50x50", "medium" => "640x480>"}
}
end
#但是提示错误:uninitialized constant File_Column::Magick,这是安装的问题,也许重启服务就可以,我也是莫名其妙,倒腾来倒腾去就成功了
修改: show.rhtml
<%= image_tag url_for_file_column("entry", "image") %>
<hr/>
<%= image_tag url_for_file_column("entry","image","thumb") %>
<hr/>
<%= image_tag url_for_file_column("entry","image","medium") %>
<hr/>
两种办法,一种是在线安装,命令:
ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/
一种是,直接下载软件包:file-column-0.3.1.tar.gz
将其释放到目录:\vendor\plugins\file_column\ 下
*注:安装可能会出现很多问题,可能是提示“no such methods 'file_column'","no such file ....."等等,包下载到路径下后,试图重启一下服务呢,我也不知道怎么的,倒来到去就成功了。
2。Model
创建表:mysql> create table entries(id int not null auto_increment,
-> image varchar(255) not null,primary key(id));
Query OK, 0 rows affected (0.11 sec)
创建model:
class Entry < ActiveRecord::Base
file_column :image
end
3。Controller
创建一个controller:
class EntryController < ApplicationController
....
在controller里,几乎不用做任何事情
4。View
生成View: scaffold
修改:_form.rhtml
<!--[form:entry]-->
<p><label for="entry_image">Image</label><br/>
<%= file_column_field "entry", "image" %>
</p>
<!--[eoform:entry]-->
修改:new.rhtml
<%= form_tag( { :action => 'create' }, :multipart => true ) %>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<% end_form_tag %>
*注:上面的代码是经过辗转反侧,千百遍测试,成功的。不能是:
<%= form_tag( :action => 'do_image_upload', :multipart => true ) %> 也不能是:
<%= form_tag { :action => 'do_image_upload' }, :multipart => true %> 否则报错:
Do not know how to handle a string with value .....
修改:show.rhtml
<%= image_tag url_for_file_column("entry", "image") %>
修改:edit.rhtml
#原来:
<% form_tag :action => 'update', :id => @entry do %>
<%= render :partial => 'form' %>
<%= submit_tag 'Edit' %>
<% end %>
#修改后
<%= form_tag( {:action => 'update', :id => @entry},:multipart =>true ) %>
<%= render :partial => 'form' %>
<%= submit_tag 'Edit' %>
<% end_form_tag %>
#注意任何一点细节:<%= 而不是<%, form_tag( {block}, :multipart=>true) 而不是其他,<% end_form_tag %> 而不是<% end %> 或<% end_tag %>
================
哎,学rails真不容易啊,出点错,找遍全球的答案,也找不到。
================
新增内容:创建缩略图
修改Model:
class Entry < ActiveRecord::Base
validates_format_of :image,
:with=>/^.*(.jpg|.JPG|.gif|.GIF)$/,
:message => "你只能上传JPG或则GIF的图片文件"
file_column :image, :magick => {
:versions => { "thumb" => "50x50", "medium" => "640x480>"}
}
end
#但是提示错误:uninitialized constant File_Column::Magick,这是安装的问题,也许重启服务就可以,我也是莫名其妙,倒腾来倒腾去就成功了
修改: show.rhtml
<%= image_tag url_for_file_column("entry", "image") %>
<hr/>
<%= image_tag url_for_file_column("entry","image","thumb") %>
<hr/>
<%= image_tag url_for_file_column("entry","image","medium") %>
<hr/>