在JE上搜索Rails文件上传,发现大部分搜到的文章,都由于版本的问题,不能用了。
比如:hideto
老大的 Rails
文件上传
或者,最典型的你在使用file_field时遇到了
写道
undefined method `original_filename' for
的问题。实际上,不是不好用了,而是,升级后的Rails不支持了。
这时,我看到很多人,就开始说,用插件吧,Rails上传文件的插件很多,这也是真的。而且,我比较推荐的是下面三个:
uploadcolumn
比较容易用
attachment_fu
Rails框架核心人员开发,该插件是acts_as_attachment的重写版本
File Column
最早的这类插件
这有一篇AJAX的使用插件的例子,或者会用到
活用插件attachment_fu,在rails
中以AJAX方式上传文件
然而,尺有所短,寸有所长。比如,大部分这些插件为了更好的支持图片上传处理,一般这些插件都依赖两个图形软件: ImageMagick
及其 Ruby接口软件包RMagick
和 FreeImage
及其 Ruby接口软件包ImageScience
。而前者在Ruby语言内应用更加广泛一些。注意像文件 RMagick-1.14.1_IM-6.3.0-7-Q8.zip
已经包含了软件ImageMagick,软件ImageMagick也要安装。
所以,Rails 的无组件上传也是用得到的。而大部分之前不能用的Rails上传,也不是因为什么特别严重的问题。其实,稍微改一下就能用。我粗浅的研究一下,希望,能够带来帮助。
<%= form_tag({:action => 'save'}, :multipart => true) %>
Upload your file: <%= file_field("file", "file") %>
<br/>
<%= submit_tag("Upload file") %>
<%= end_form_tag %>
会提示:
实际可以改为:
<% form_tag({:action => 'save'}, {:multipart => true}) do %>
Upload your file: <%= file_field("upload", "datafile") %>
<br/>
<%= submit_tag("Upload file") %>
<% end %>
而,Rails2.×后比较支持的写法应该如下:
<%form_for (:data_file, :url=>{:action => 'uploadFile'},
:html=>{:multipart => true}) do%>
<p><label for="upload_file">Select File</label> :
<%= file_field 'file', 'file' %></p>
<%= submit_tag "Upload" %>
<% end %>
下面,是一个在Rails 2.2.2 和2.3.2 下可以运行的,最基本的不用组件上传的代码。需要的点击
- 大小: 22.7 KB
分享到:
相关推荐
在Rails 2.2.3时代,社区已经发展出很多插件和 gems(Ruby的扩展库),如Devise用于身份验证,CanCanCan进行授权管理,Paperclip或Carrierwave处理文件上传等。虽然这些可能需要适配老版本,但它们能极大地增强你的...
7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于身份验证,Paperclip或Carrierwave处理文件上传,Resque或Sidekiq实现后台任务队列。掌握如何选择和使用这些工具来扩展应用功能。 8. **Rails...
例如,Devise用于用户认证,CanCanCan用于授权管理,Paperclip或Carrierwave处理文件上传,Stripe或PayPal集成支付功能,以及各种数据分析和报表生成库等。 总的来说,这个压缩包对于Ruby on Rails的初学者或希望...
10. **插件和Gem**:Rails的生态系统中,Gem是第三方库的主要形式,它们提供了额外的功能,如Devise用于身份验证,CanCanCan用于授权,Paperclip或Carrierwave处理文件上传等。 11. **部署**:了解如何将Rails应用...
10. **社区工具和插件**:介绍一些常用的Rails gem,如Devise用于用户认证,Paperclip或Carrierwave处理文件上传等。 附带的`rr2-code.zip`文件很可能包含了书中各章节示例代码,这将有助于读者更好地理解和实践书...
8. **插件系统**:Administrate有一个活跃的社区,提供了许多插件,可以扩展其功能,例如日期范围筛选器、多文件上传等。 9. **版本管理**:“e980d40”这样的版本号可能意味着在项目中锁定特定版本,以确保一致性...
"Gs_Class"可能是指项目中的类库或模块,它们构成了自动升级系统的一部分,可能包含了处理升级逻辑、版本比对、文件传输等功能的代码。 总之,这个源代码包提供了一个完整的自动升级服务器端解决方案,包括了版本...
imgix-rails是用于将集成到Ruby on Rails应用程序的宝石。 它建立在之上,提供了一些特定于Rails的接口。 ix_image_url 模型中的用法 链轮中的用法 与图像上传库一起使用 回形针和CarrierWave 重新提交 主动储存 ...
运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在Heroku上工作,但可以在任何平台上工作。 升级吗? 从1.x升级...
如果系统版本不符合需求,则需升级或更换系统。 #### 二、关闭防火墙 为了避免安装过程中防火墙造成的问题,需要关闭并禁用系统防火墙服务。 ```bash [root@localhost ~]# systemctl stop firewalld.service [root...
运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在上工作,但可以在任何平台上工作。 升级吗? 从1.x升级? ...
Rails 6.0.3.5是这个项目的特定版本,该版本引入了多项新功能,如Action Cable支持实时通信、Active Storage简化文件上传处理,以及并行测试以加速测试套件的运行。在“eventz_on_rails”项目中,你可以学习如何利用...
- 使用`bundle update`命令升级Rails及其依赖,但要谨慎对待破坏性更新。 2. **配置安全的环境**: - 设置正确的环境变量,如SECRET_KEY_BASE,以保护应用程序的敏感信息。 - 在生产环境中禁用开发者模式,以...
RubyGems是Ruby编程语言的一个核心组件,它提供了一个便捷的包管理机制,使得开发者能够轻松地安装、管理和使用各种库和工具。...在升级到更高版本之前,了解和理解RubyGems的工作原理对于维护和管理这些项目至关重要。
- 文档协作:上传和共享项目相关的文档,进行版本控制和评论交流。 - 通知和通信:通过邮件通知或内置的消息系统保持团队间的沟通。 5. **插件和定制**: Redmine有丰富的插件生态系统,可以通过安装插件来扩展...
Redmine 是一个开源的、基于Web的项目管理应用程序,它由Ruby on Rails框架构建。...在升级或安装新版本时,要特别注意数据迁移和兼容性问题。在社区论坛或文档中,你可以找到更多关于Redmine的使用和管理技巧。
1. 文档库:上传和管理项目相关的文档,支持多种文件格式。 2. 版本控制:与版本控制系统集成,查看文件历史和差异。 七、定制与扩展 1. 主题定制:更换Redmine的界面主题,以适应企业形象。 2. 插件与集成:安装...
在Windows环境下安装"Bitnami Redmine",用户无需手动配置服务器环境,如Ruby、Rails、MySQL或PostgreSQL等,因为这个打包版本已经将所有依赖项集成在一起。这极大地简化了安装过程,使得非专业IT人员也能轻松部署和...
- **版本升级**:关注Redmine的新版本,适时进行升级以获取最新功能和安全补丁。 - **监控与调试**:使用日志和性能监控工具,确保系统正常运行,及时发现和解决问题。 以上就是关于Redmine 4.1.1的一些核心知识...