如何嵌套namspaced资源并避免双重命名空间 - 未初始化的常量ActsAs :: ActsAs

时间:2016-04-29 14:09:13

标签: ruby-on-rails

我在Rails应用程序中有两个命名空间模型--ActsAs :: Comments和ActsAs :: Likes。两者都是多态的,属于几种不同的父模型。对于这个问题,Likes可能属于评论。

所以我的路线看起来像这样

namespace :acts_as do
  resources :comments do
    namespace :acts_as do
      resources :likes, only: :create
    end
  end
end 
resource :other_objects do
  namespace :acts_as do
    resources :likes, only: :create
  end
end

然后我在父对象的视图中调用了一个共享部分,用于添加喜欢。

<%= link_to 'Like', 
  polymorphic_path( 
    [ @object, ActsAs::Like.new ], 
    like: { likable_type: @object.class.name, likable_id: @object.id } 
  ) %>

这项工作适用于OtherObjects,但不适用于评论。

Rake路线显示

acts_as_comment_acts_as_likes  
POST     
/acts_as/comments/:comment_id/acts_as/likes(.:format)
acts_as/acts_as/likes#create
# note the double namespacing of the controller

点击&#39;喜欢&#39;给出

ActionController::RoutingError - uninitialized constant ActsAs::ActsAs:

设置它的正确方法是什么,并避免控制器的这个双重命名空间?

0 个答案:

没有答案