0

と の 2 つのリソースがcommentsありcommunities、各コメントは 1 つ以上のコミュニティに関連付けられています。

私の計画は、URL に/commentsすべてのコメントを/comments/:community_name表示し、特定のコミュニティからのコメントのみを表示することです。URL は「comments#index」アクションにルーティングして、Comment モデルから一連のコメントを取得する必要があります (名前付き scopeを使用)。

これらのルートを生成するにはどうすればよいですか? (または、より適切なルート設計があれば教えてください。)

以下のネストされたルートを試してみると、コメント ID を指定する必要があるようです\comment\:comment_id\communities\:community_id

#routes.rb
resources :comments, only: [:index, :create, :destroy]
resources :communities, only: [:index, :new, :create, :destroy]
resources :comments do
  resources :communities
end

注: コミュニティを表示、追加、および削除するにはアクションが必要なため、コミュニティ リソースは独立したリソースである必要があります。

4

2 に答える 2

0

次のコード行のコメントを外して#routes.rbチェックします。
match ':controller(/:action(/:id))(.:format)'

于 2012-07-11T10:34:56.850 に答える
0
resources :comments, only: [:index, :create, :destroy] do
  collection do
    resources :communities, only: [:index, :new, :create, :destroy]
  end
end

このルート宣言により、次のような URL が得られます。

comments/communities
comments/community/1, etc

community-name をコミュニティ ID として使用したい場合、そしてほとんどのリソースでそれを行いたい場合は、リソースに Friendly_id のような素敵な gem を使用することをお勧めします

于 2012-07-12T02:36:32.197 に答える