方法一
使用 file-column 和rmagick 上传
安装插件 Ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk
做法
.建立一个存放路径的model,在数据库中建立Entry数据库
并生成相应的scaffold:
ruby script/generate scaffold Entry upload
4.修改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
5.修改_form.rhtml
代码
<%= error_messages_for 'entry' %>
<p><label for="entry_image">Imagelabel><br/>
<%= file_column_field 'entry', 'image' %>p>
6.修改new.rhtml
代码
<h1>New entryh1>
<%= start_form_tag 'create',:multipart => true%>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<%= end_form_tag %>
<%= link_to 'Back', :action => 'list' %>
7.修改show.rhtml
代码
<% for column in Entry.content_columns %>
<p>
<b><%= column.human_name %>:b> <%=h @entry.send(column.name) %>
<br>
原始大小:
<%= image_tag url_for_file_column 'entry', 'image' %>
<br>
thumb:
<%= image_tag url_for_file_column 'entry', 'image' ,'thumb'%>
<br>
medium:
<%= image_tag url_for_file_column 'entry', 'image' ,'medium'%>
p>
<% end %>
<%= link_to 'Edit', :action => 'edit', :id => @entry %> |
<%= link_to 'Back', :action => 'list' %>
1. 遇到问题
my_options = FileColumn::init_options(options,
Inflector.underscore(self.name).to_s,
attr.to_s)
改成:
Ruby代码
my_options = FileColumn::init_options(options,
ActiveSupport::Inflector.underscore(self.name).to_s,
attr.to_s)
方法二 使用attachment_fu 和 minimagick 和 rmagick 上传图片
安装
gem install mini_magick 或者是 gem install rmagick(window下 要安装windows版本)
Controller 部分
def create
@mugshot = Mugshot.new(params[:mugshot])
respond_to do |format|
if @mugshot.save
flash[:notice] = 'Mugshot was successfully created.'
format.html { redirect_to(@mugshot) }
format.xml { render
ml => @mugshot, :status => :created, :location => @mugshot }
else
format.html { render :action => "new" }
format.xml { render
ml => @mugshot.errors, :status => :unprocessable_entity }
end
end
end
Model
require 'mini_Magick'
class Mugshot < ActiveRecord::Base
has_attachment :content_type => :image,
:storage => :file_system,
:processor => :MiniMagick,
:max_size => 10.megabytes,
:resize_to => '320x200',
:thumbnails => { :thumb => [50, 50] },
:path_prefix => 'public/images/mugshots'
validates_as_attachment
end
视图
<h1>New mugshot</h1
<%= error_messages_for :mugshot %>
<% form_for(:mugshot, :url => mugshots_path,
:html => { :multipart => true }) do |f| -%>
<p>
<label for="mugshot">Upload A Mugshot:</label>
<%= f.file_field :uploaded_data %>
</p>
<p>
<%= submit_tag 'Create' %>
</p>
<% end -%>
显示
<%= link_to 'New mugshot', new_mugshot_path %>
<h1>Most Wanted</h1>
<% for mugshot in @mugshots -%>
<%= link_to image_tag(mugshot.public_filename(:thumb)), mugshot.public_filename %>
<% end -%>
Imagemagick 安装
http://rubyforge.org/frs/?group_id=12&release_id=3031
最后 一个问题
no such file to load -- mini_Magick
no such file to load -- RMagick
在命令行下启动 服务器 和在netbeans 启动 都试一下
分享到:
相关推荐
#Ruby on rails 入门套件 这是一个 Ruby on rails 入门工具包。 它应该包含启动项目所需的一切。 ##特征 Angular 设置和演示页面(使用最佳实践,例如解析器、服务等) Angular 与 rails 的集成(angular-rails-...
DiseasesMap 在 GoogleMaps 上构建疾病的应用程序是否需要安装 GMaps4Raisl gem 修改https://github.com/toshikomura/Google-Maps-for-Rails.git 要使用应用程序需要执行rake db:migratebundlebundle installbundle ...
MATLAB数字滤波器设计及其在语音信号去噪中的应用:源码详解与报告分享,MATLAB 数字滤波器设计 及其语音信号去噪应用。 (供学习交流)带源码,带注释。 有代码和报告。 ,核心关键词:MATLAB; 数字滤波器设计; 语音信号去噪应用; 源码; 注释; 代码与报告。,"MATLAB数字滤波器设计及其在语音信号去噪中的应用:带源码注释与报告"
COMSOL软件模拟三维电化学腐蚀过程的研究分析,comsol三维电化学腐蚀。 ,核心关键词:Comsol;三维电化学;腐蚀;模型模拟;电化学腐蚀过程。,"Comsol模拟:三维电化学腐蚀过程解析"
基于COMSOL的降雨入渗模型:边坡与渗流边界下的强度折减塑性形变研究,comsol降雨入渗模型,边坡降雨边界与渗流边界 强度折减塑性形变 ,comsol降雨入渗模型; 降雨边界; 渗流边界; 强度折减; 塑性形变,"COMSOL降雨入渗模型:边坡渗流与强度折减塑性形变分析"
2025员工安全意识培训试题及答案.docx
Python自动化办公源码-06在Word表格中将上下行相同内容的单元格自动合并
基于深度学习的神经网络技术在信息通信领域的应用研究.pdf
1.内容概要 通过KNN实现鸢尾花分类,即将新的数据点分配给已知类别中的某一类。该算法的核心思想是通过比较距离来确定最近邻的数据点,然后利用这些邻居的类别信息来决定待分类数据点的类别。 2.KNN算法的伪代码 对未知类别属性的数据集中的每个点依次执行以下操作: (1)计算已知类别数据集中的点与当前点之间的距离; (2)按照距离递增次序排序; (3)选取与当前点距离最小的k个点; (4)确定前k个点所在类别的出现频率; (5)返回前k个点出现频率最高的类别作为当前点的预测分类。 3.数据集说明 代码使用`pandas`库加载了一个名为`iris.arff.csv`的数据集 4.学习到的知识 通过鸢尾花分类学习了KNN算法,选择样本数据集中前k个最相似的数据,就是KNN算法中k的出处。k值过大,会出现分类结果模糊的情况;k值较小,那么预测的标签比较容易受到样本的影响。在实验过程中,不同的k值也会导致分类器的错误率不同。KNN算法精度高、无数据输入的假定,可以免去训练过程。但是对于数据量较多的训练样本,KNN必须保存全部数据集,可能会存在计算的时间复杂度、空间复杂度高的情况,存在维数灾难问
感应电机控制与矢量控制仿真:磁链闭环、转速闭环与电流闭环的综合应用研究,感应电机控制仿真,矢量控制,异步电机仿真,磁链闭环,转速闭环,电流闭环 ,核心关键词:感应电机控制仿真; 矢量控制; 异步电机仿真; 磁链闭环; 转速闭环; 电流闭环,"感应电机矢量控制仿真:磁链、转速、电流三闭环异步电机模拟"
威纶通TK6071IP触摸屏锁屏宏指令程序详解:注释清晰,便于理解与学习,威纶通触摸屏锁屏宏指令程序 ~ 威纶通触摸屏锁屏宏指令程序,TK6071IP触摸屏 利用宏指令程序来控制,宏指令注释清晰,方便理解程序。 具有很好的学习意义和借鉴价值。 ,关键词:威纶通触摸屏;锁屏宏指令程序;TK6071IP触摸屏;宏指令控制;注释清晰;学习借鉴。,威纶通触摸屏宏指令程序:清晰注释,学习借鉴之利器
2025输血相关法律法规试题考核试题及答案.docx
Python游戏编程源码-2048小游戏
2025最新康复医学概论考试题库(含答案).doc
Python自动化办公源码-09用Python批量往Word文档中指定位置添加图片
高品质车载充电器技术解决方案:含原理图、PCB图、C源代码及DSP控制器资料,附赠CDCDC模块资料,车载充电器 3Kw OBC 车载充电器 含原理图、PCB图、C源代码、变压器参数等生产资料。 附赠15kwdcdc模块资料 1、这款产品的方案采用的是dsp2803x系列。 2、原理图和Pcb采用AD绘制。 此方案仅供学习 ,车载充电器; 3Kw OBC; 原理图; PCB图; C源代码; 变压器参数; 生产资料; dsp2803x系列; AD绘制; 15kwdcdc模块资料,3Kw车载充电器方案:DSP2803x系列原理图、PCB图及C源学习包
2025最新康复医学考试题及答案.docx
内容概要:本文介绍了一种用于视频处理的新型卷积神经网络(CNN)加速器。主要创新点在于引入了混合精度计算、跨帧数据重用控制器及引擎,以及混合位宽差帧数据编码解码器。这些特性有效解决了视频帧间的时空相关性和稀疏性带来的挑战,提高了处理速度并降低了功耗和带宽需求。具体来说,通过对连续帧的数据相似度利用,可以在保持高精度的同时减少计算量和内存访问次数;通过多类型稀疏卷积聚类数组实现了对现代稀疏神经网络的支持;并通过混合位宽度编码减少了离芯片外的数据传输量,最高达到68%。 适用人群:从事深度学习硬件加速设计的研究人员和技术爱好者;关注AI边缘计算领域的从业者。 使用场景及目标:适用于自动驾驶汽车摄像头、监控系统等实时视频流应用场景。旨在为开发者提供高效的低能耗解决方案,在有限的时间和资源下完成大量的图像信号处理任务,如跟踪、分类等。 其他说明:文中还详细描述了芯片的设计细节,测试平台构建,以及不同模型(如MobileNet)在网络上的实际性能表现。
COMSOL电化学喷射腐蚀模拟与解析:技术原理及应用实践,comsol电化学喷射腐蚀 ,核心关键词:comsol; 电化学; 喷射腐蚀; 电化学腐蚀。,"电化学喷射腐蚀研究:comsol模拟与解析"
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat