nlh*_*nlh 5 mongodb formtastic mongoid activeadmin mongoid3
哇 - 很多项目都包含在这个中,而且我做了一些(广泛的)搜索无济于事,所以抛出一个耀斑,看看是否有其他人正在使用类似的堆栈并有一个解决方案.
我正在使用支持Mongoid的ActiveAdmin分支为Rails 3应用程序构建管理界面.
到目前为止,ActiveAdmin(使用Formtastic构建其表单)似乎正在发挥作用.但是当我试图将这个堆栈与Mongoid embeds_many和embedded_in关系一起使用时,我遇到了麻烦.我想成为一个好公民,并使用适当的数据建模技术与Mongo,但Formtastic似乎不想发挥.
我将分享我得到的具体错误,尽管它可能是深奥的.
如果我不能挖了一个很好的解决方案,我要把它吸上来,只是用has_many和belongs_to,虽然我知道我会被放弃的MongoDB的主要好处(应用程序将不会大到足以有欠缺连接/多个查询是一个问题,但我认为我从一开始就以正确的方式做事!).
class Location
include Mongoid::Document
embeds_many :events
field :venue_name, type: String
end
class Event
include Mongoid::Document
embedded_in :location
field :event_name, type: String
end
ActiveAdmin.register Event do
form do |f|
f.inputs do
f.input :event_name
f.input :location, :as => :select
end
f.buttons
end
Run Code Online (Sandbox Code Playgroud)
它在线上窒息f.input :location并抛出:
ActionView::Template::Error (undefined method `event_id' for #<Event:0x007fa4224a20e0>):
1: insert_tag renderer_for(:new)
Run Code Online (Sandbox Code Playgroud)
我改变了:as => :select对:as => :check_boxes,实际上得到它,以显示正确的位置(虽然为复选框,不选择或收音机).但是在提交表格后,我接受了一个:
Mongoid::Errors::NoParent (
Problem:
Cannot persist embedded document Event without a parent document.
)
Run Code Online (Sandbox Code Playgroud)
在查看原始提交时,它尝试将我的选择发送为"event_id"而不是父文档的ID(位置).
无论如何 - 我的直觉是我试图在这里将一个方形钉子放入一个圆孔中,但如果其他人有任何想法,他们将非常感激.
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |