ruby-on-rails – Rails 3 JQuery文件上传嵌套模型
我一直在寻找一些例子,但已经很简单:
我正在尝试在我正在开展的项目上实现JQuery-File-Upload,但是如何让它处理嵌套属性,我失去了兴趣. 快速概述: 2型号: Comment [has_many :attachments] Attachment [belongs_to :comment] 评论accept_nested_attributes_for:附件.另外 – 我正在使用蜻蜓. 我已经查看了JQuery文件上传站点上的Rails 3指南,但他们认为它是一个单一的模型,所以它都围绕一个窗体构建.有没有人有任何实施的例子,还是有一个现在的教程,我还没有偶然发现? 我确定有人有类似的问题… JQuery文件上传到适当的工具,还是应该看别的东西? 解决方法
我只想把我的答案放在这里,还有Stone的.我花了近两天的时间让这个工作(Stone是对的,这是一个PITA!),所以希望我的解决方案能帮助某人.我做的只是一个触摸不同于石头.
我的应用程序具有功能(漫画,拼图,文本列等)和FeatureAssets(单个漫画面板/彩色版本,特定填字游戏的问答文件等).由于FeatureAssets与一个功能完全相关,我嵌套了模型(如上图所示). 我最大的问题是意识到,我发送到服务器的params [:feature_asset]实际上是我的uploader’d文件对象的数组,而不是我习惯使用的那个.经过一点点的迭代,通过每个文件并创建一个FeatureAsset从它,它的工作就像一个魅力! 希望我会很清楚地翻译这个.我宁愿提供一些信息太多还不够.当你解释别人的代码时,一点额外的上下文从不伤害. feature.rb class Feature < ActiveRecord::Base belongs_to :user has_many :feature_assets attr_accessible :name,:description,:user_id,:image accepts_nested_attributes_for :feature_assets,:allow_destroy => true validates :name,:presence => true validates :user_id,:presence => true mount_uploader :image,FeatureImageUploader end feature_asset.rb belongs_to :user belongs_to :feature attr_accessible :user_id,:feature_id,:file,:file_cache validates :user_id,:presence => true validates :feature_id,:presence => true validates :file,:presence => true mount_uploader :file,FeatureAssetContentUploader # grabs useful file attributes & sends them as JSON to the jQuery file uploader def to_jq_upload { "file" => file,"file_name" => 'asdf',"url" => file.url,"delete_url" => id,"delete_type" => "DELETE" } end feature_assets_controller.rb def create @feature = Feature.find(params[:feature_id]) params[:feature_asset]['file'].each do |f| @feature_asset = FeatureAsset.create!(:file => f,:feature_id => @feature.id,:user_id => current_user.id) end redirect_to @feature end 而且这不是很有帮助,但是我的feature_asset_uploader.rb在下面.这很漂亮 class FeatureAssetContentUploader < CarrierWave::Uploader::Base storage :file end 功能_form.html.erb(类似于Stone的,但不完全) <%= form_for [@feature,@feature_asset],:html => { :multipart => true } do |f| %> <div class="row" id="fileupload"> <div class=" fileupload-buttonbar"> <div class="progressbar fileupload-progressbar nofade"><div style="width:0%;"></div></div> <span class="btn btn-primary fileinput-button"> <i class="icon-plus"></i> <span><%= t('feature_assets.add_files') %>...</span> <%= hidden_field_tag :feature_id,@feature.id %> <%= hidden_field_tag :user_id,current_user.id %> <%= f.file_field :file,:multiple => true %> </span> <button type="submit" class="btn btn-success">Start Upload</button> <button type="reset" class="btn btn-warning">Cancel Upload</button> <button type="button" class="btn btn-danger">Delete Files</button> </div> </div> 它没有错误处理或其应有的任何优点,但这是它的准系统版本. 希望有帮助的人在那里.随时问我是否有任何问题! 凯尔 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – SFINAE sizeof =检测表达式是否编译
- VB.net Wcf事件广播(订阅、发布)
- Ruby,Tor和Net :: HTTP :: Proxy
- flexigrid 参数说明
- XML的SelectNodes使用方法以及XPath
- 关于tinyxml2解析xml跑错, PC运行正常, Android闪退
- ruby-on-rails – 如何在Mongoid中保存embeds_many关系?
- Oracle 11G RAC 生成AWR报告总结
- ios – 错误ITMS-90046使用xctool / xcodebuild与XCode Arc
- ACE主要应用框架与类别(二):Reactor反应式框架的工作原理