我有一个跟随对象
class BaseProject
include Mongoid::Document
end
现在假设我想通过dup/clone
p1 = Project.first
p2 = p1.clone #p1.dup has the same effect
project_path(p1) #works fine generating /projects/87358736587365 path
project_path(p2) #does not work resulting in an error
No route matches {:action=>"my_action", :controller=>"projects", :id=>#Project{}....
请注意,:id
参数是整个p2
对象哈希,而不仅仅是id
这可能与mongoid有关。 dup
和clone
都会产生相同的结果。我知道ActiveRecord
版本的版本有所不同,mongoid
也重新定义了这些版本
更新1
只有persisted?
等于true
的对象才能生成路由,因为生成有效路由需要to_param
Journey::Routing
。
我面临的问题是,由于验证失败,我无法持久保存对象。我想我必须假冒路线回到/projects/new
才能解决这个问题
答案 0 :(得分:0)
即使对象被欺骗/克隆并且具有有效的id