0

ブログ モジュールを使用して Web サイトを作成しています。ブログ投稿は、下書きまたは公開のいずれかです。

公開された投稿は編集できなくなり、下書きは表示できなくなります (編集のみ)。

現在、次のように定義されたリソースがあります

resources :posts, :path => "blog" do
  collection do
    get 'drafts'
  end
end

を使用して下書きリストにアクセスし、 を使用blog/draftsして新しい投稿を作成し、 を使用してblog/new下書きを編集できblog/:id/editます。

ただし、新しい下書きを使用して作成し、使用blog/drafts/newして編集したいblog/drafts/:id

この新しいスキームを使用するには、、、およびルートをnew定義する必要があります。およびルートは非常に単純に見えます。ただし、アクション名の部分を削除するためにルートを処理する方法がわかりません。createeditupdatenewcreateedit

また、デフォルトのルート定義を見ているとactionpack-3.2.9/lib/action_dispatch/routing/mapper.rb、次のように見つかりました。

member do
  get    :edit if parent_resource.actions.include?(:edit)
  get    :show if parent_resource.actions.include?(:show)
  [...]
end

:editRails がと:showルートをどのように区別し、それに応じて URL をマッピングするかがわかりません。

ありがとう

4

1 に答える 1

2

以下の路線をご利用いただけます。これには異なるファイル階層が必要であることにrake routes注意してください。

namespace :blog do
  resources :drafts, :controller => :posts, only: [:new, :edit]
  resources :posts, only: :show
end
于 2012-12-16T18:35:39.003 に答える