url helper for namespace nested model

时间:2015-03-28 20:14:47

标签: ruby-on-rails

我正在使用public_activity宝石。要使用gem,您不需要为它创建活动控制器。所以我没有。但是,我确实有一个评论控制器。我想为评论的创建操作提供以下url帮助:

public_activity_activity_comments_path(@activity)  

我在路线上尝试过两件事但两件都失败了。首先,我尝试使用命名空间路由:

  namespace :public_activity do
    resources :activity do
      resources :comments
    end
  end

这会产生错误:

ActionController::RoutingError - uninitialized constant PublicActivity::CommentsController:

由于我没有PublicActivity :: Activities控制器,所以我尝试了这个:

get '/public_activity/activity/:activity_id/comments/new', to: 'comments#new'
post '/public_activity/activity/:activity_id/comments', to: 'comments#create'

然而,这似乎根本没有产生任何url助手,因为它给我以下错误:

NoMethodError - undefined method `public_activity_activity_comments_path' for #<#<Class:0x007f868e1b7760>:0x007f868e1afd58>:

我之所以想要这样的路线是因为在我的评论视图中,可评论的可以是任何模型,所以我更喜欢有多态形式:

<%= form_for [commentable, Comment.new] do |f| %>
  ...

我运气不好吗?我是否必须为form_for核心网址?

1 个答案:

答案 0 :(得分:0)

恕我直言,您只需要使用您的多态关联和表单,Public_Activity将记录您正确配置任何模型的活动。