0

2番目の「new」アクション(*different_new *と呼ばれる)をThingsというリソースに追加する必要があります。私はそれを解決したいと思います:

things/different_new

*things_controller.rb*にdifferent_newアクションが定義されています

ルーティングのレールガイドに従って、カスタムアクションをルートとして追加するための次の例を確認します。

resources :photos do
  member do
    get 'preview'
  end
end

ただし、このように追加されたアクションはすべて特定のリソースに追加されます。たとえば、上記の結果は次のようなルートになります。

photos /:photo_id / Preview

したがって、アクションは、すでに作成されているリソースのアクションではなく、新しいリソースが作成された場所に配置する必要があるため、これは機能しません。

どうすればこれを解決できますか?

4

2 に答える 2

3

メンバーと同様に、収集オプションもあります。

resources :photos do
  collection do
    get 'preview'
  end
end

またはあなたの場合:

resources :things do
  collection do
    get 'different_new'
  end
end

これは、レールルーティングガイドのセクション2.9.2で説明されています。

于 2012-06-19T14:08:00.973 に答える
2

新しいアクション(この場合はdifferent_newアクション)は既存のリソースに関連付けられていないため、収集ルートである必要があります。

resources :things do
  get :different_new, :on => :collection
end

のようなパスが生成されますthings/different_new。ただし、事前定義されたnewアクションとは異なり、URLヘルパーは複数形になります- different_new_things_path

于 2012-06-19T14:07:18.023 に答える