-
rails使用mongoDB的 embedded_in 多态模型关系下,如何处理图片先保存正文后保存?15
好吧。。标题写得比较凌乱,我也不知道怎么一句话描述。
事情的经过是这样的:
Picture模型:
class Picture include Mongoid::Document mount_uploader :image, ImageUploader field :description embedded_in :picturable, :inverse_of => :pictures end
Post模型:
class Post include Mongoid::Document field :title field :content embeds_many :pictures end
因为好几个模型都要上传图片,所以图片embedded_in到各个模型里。
在写post的时候,可以先上传图,然后插入编辑器,再保存post, 其实就和javaeye论坛发帖子的这个结构一样的。
以前用mysql数据库的时候,图片会先保存到pictures表,然后把ID返回过来存到页面的hidden_field里,保存好post时候再根据这些hidden_field里面的ID去更新pictures表的记录的外键为这个post的主键,我一直都是这么处理的似乎也没遇到啥问题。
但是换成mongoDB后问题就来了,Picture被embedded_in到各个collection里,他自己不是顶级collection,于是我就没办法在上传图片(post尚未保存)的时候就存入数据库,会得到"不允许直接访问嵌入式的集合Picture , 请从文档的根访问集合"的错误返回。
然后我就迷茫了,我觉得就结构上讲,图片和post肯定是embed的关系,毕竟没有单独查询图片的需求。可是这样的话,我又不知道该怎么先保存图片,求rails及mongoDB指点。。。
2011年1月13日 20:47
目前还没有答案
相关推荐
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
复杂Rails系统架构优化
InspiniaAdmin 2.6.1 Rails_Full_Version
中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
允许从Rails Admin轻松地将state_machine事件发送到模型,包括对ActiveRecord \ Mongoid和自定义状态字段名称的支持以及每个模型多个状态机的支持。 截屏 正在安装 将此行添加到应用程序的Gemfile中: gem 'rails_...
RestFul_Rails_Dev_v_0.1 RestFul_Rails_Dev_v_0.1
agile_web_development_with_rails_3rd_edition.9994652073.pdf
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
inspinia admin 2.5 中的 Rails_Full_Version
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
Rails_Recipes_with_Source_Code
Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...
Rails_3_Cheat_Sheets.pdf
Rails Admin内容生成器 使用创建内容的简单方法。 预习 示范 要求 依存关系 MiniMagick 支持的ORM ActiveRecord 支持的资产插件 CarrierWave 安装 使用rails <5和TurboLink <5进行测试 将此行添加到您的...
#特征从任何全长网址创建唯一的缩短网址不重复已经创建的短网址从主页导航到短网址跟踪每个短网址的访问次数#设置Rails v 4.1.4 Ruby v 2.1.2 mongodb v 2.6.5(brew 安装 mongodb) 捆绑安装,运行 mongod,然后...
ruby_on_rails_3_入门教程(中文)
应用Rails进行REST 开发 ,翻译自《RESTful Rails Development》
rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...
rails_turo_in_action 实际使用中的 Rails 教程