我在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:
设置它的正确方法是什么,并避免控制器的这个双重命名空间?