我有以下对象

class BaseProject
  include Mongoid::Document
end

现在假设我要通过dup/clone创建它的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

这可能与蒙古气有关。 dupclone产生相同的结果。 我知道ActiveRecord版本有所不同, mongoid重新定义了这些版本

更新1

原来只有具有persisted?对象persisted? 等于true可以生成路由,因为Journey::Routing to_param是生成有效Journey::Routing所必需的。

我面临的问题是,由于验证失败,因此我无法保留对象。 我想我必须假装回/projects/new路由才能解决此问题

===============>>#1 票数:0

即使对象被复制/克隆并且具有有效的id ,也无法为未持久化的对象生成路由

  ask by Zepplock translate from so

未解决问题?本站智能推荐: