0

モデル:

 Group:
 has_many :booth_marketing_messages, :dependent => :destroy

 Booth Marketing Message:
 belongs_to :group

ルート:

   resources :groups do
      member do
       get :get_group_links
        get :booth_marketing_messages
       end
      resources :booth_marketing_messages do
         member do
           match :toggle_activation
         end
      end
    end

新しいブースのマーケティングメッセージを作成するために、私は次のような見解を持っています。

 <% form_for :asset, :url => (defined?(msg) ? group_booth_marketing_message_path(msg) :        
       group_booth_marketing_messages_path), :html => { :multipart => true, :method => 
      (defined?(msg) && msg ? :put : :post) } do |f| -%>
             .......

レーキルートを実行する場合:

     booth_marketing_messages_group GET  /groups/:id/booth_marketing_messages(.:format)                                        
     {:action=>"booth_marketing_messages", :controller=>"groups"}

      group_booth_marketing_messages GET 
     /groups/:group_id/booth_marketing_messages(.:format)                                  
     {:action=>"index", :controller=>"booth_marketing_messages"}

しかし、私のブースマーケティングメッセージコントローラーにはインデックスアクションがありません。はい、このルートは失敗しません、どうですか?

4

1 に答える 1

1

ルートを次のように記述しました

resources :booth_marketing_messages do
     member do
       match :toggle_activation
     end
  end

したがって、コントローラーにアクションが記載されていても、コントローラーがなくても、インデックス、新規、作成、更新、破棄、編集、および表示として基本的なルートを作成します。

しかし、その URL にアクセスすると、action not found または controller is not present というエラーが表示されます。

したがって、デフォルトルートを避けたい、または使用したくない場合は、ルートなどでのみ使用できます。

resources :products, only: [:new]

これにより、新しいアクションのみのルートが作成され、

resources :products, except: [:new]

これにより、新しいアクションを除くすべてのルートが作成されます

これがあなたを明確にすることを願っています

于 2013-03-22T13:18:35.300 に答える