0

'layout_admin'という管理領域のレイアウトがあります。'layout_admin'には、次のものがあります。

<li><%= link_to 'Contenu', :action=>'index', :controller=>'contents' %></li>
<li><%= link_to 'Petitions', :controller => 'petitions', :action => 'index' %></li>

Contenuの最初のリンクは正常に機能しますが、2番目のリンク(請願用)は奇妙なエラーに私を駆り立てます:

ルーティングエラールートが一致しません{:controller => "admin / edito "}

アドレスバーに私が持っている:localhost:3000 / admin / petitions

ルート.rbで私は持っています:

namespace :admin do resources :petitions 
end

また、「edito」は、1つのアクション「index」を持つ管理領域外の別のコントローラーであることを正確にする必要があります。ルート.rbで私はget "edito/index"edito_controllerについて持っています。

誰かが問題の原因を知っていますか?サンスク。

フルレーキルート:

        temoignages GET    /temoignages(.:format)              temoignages#index

                POST   /temoignages(.:format)              temoignages#create
 new_temoignage GET    /temoignages/new(.:format)          temoignages#new
edit_temoignage GET    /temoignages/:id/edit(.:format)     temoignages#edit
     temoignage GET    /temoignages/:id(.:format)          temoignages#show
                PUT    /temoignages/:id(.:format)          temoignages#update
                DELETE /temoignages/:id(.:format)          temoignages#destroy
admin_petitions GET    /admin/petitions(.:format)          admin/petitions#index
                POST   /admin/petitions(.:format)          admin/petitions#create
new_admin_petition GET    /admin/petitions/new(.:format)      admin/petitions#new
edit_admin_petition GET    /admin/petitions/:id/edit(.:format) admin/petitions#edit
 admin_petition GET    /admin/petitions/:id(.:format)      admin/petitions#show
                PUT    /admin/petitions/:id(.:format)      admin/petitions#update
                DELETE /admin/petitions/:id(.:format)      admin/petitions#destroy
 admin_contents GET    /admin/contents(.:format)           admin/contents#index
                POST   /admin/contents(.:format)           admin/contents#create
new_admin_content GET    /admin/contents/new(.:format)       admin/contents#new
edit_admin_content GET    /admin/contents/:id/edit(.:format)  admin/contents#edit
  admin_content GET    /admin/contents/:id(.:format)       admin/contents#show
                PUT    /admin/contents/:id(.:format)       admin/contents#update
                DELETE /admin/contents/:id(.:format)       admin/contents#destroy
    admin_posts GET    /admin/posts(.:format)              admin/posts#index

                POST   /admin/posts(.:format)              admin/posts#create
  new_admin_post GET    /admin/posts/new(.:format)          admin/posts#new
  edit_admin_post GET    /admin/posts/:id/edit(.:format)     admin/posts#edit
     admin_post GET    /admin/posts/:id(.:format)          admin/posts#show
                PUT    /admin/posts/:id(.:format)          admin/posts#update
                DELETE /admin/posts/:id(.:format)          admin/posts#destroy
                GET    /admin/posts(.:format)              admin/posts#index

                POST   /admin/posts(.:format)              admin/posts#create
                GET    /admin/posts/new(.:format)          admin/posts#new
                GET    /admin/posts/:id/edit(.:format)     admin/posts#edit
                GET    /admin/posts/:id(.:format)          admin/posts#show
                PUT    /admin/posts/:id(.:format)          admin/posts#update
                DELETE /admin/posts/:id(.:format)          admin/posts#destroy
  admin_backend_index GET    /admin/backend(.:format)            admin/backend#index
                POST   /admin/backend(.:format)            admin/backend#create
  new_admin_backend GET    /admin/backend/new(.:format)        admin/backend#new

  edit_admin_backend GET    /admin/backend/:id/edit(.:format)   admin/backend#edit
  admin_backend GET    /admin/backend/:id(.:format)        admin/backend#show
                PUT    /admin/backend/:id(.:format)        admin/backend#update
                DELETE /admin/backend/:id(.:format)        admin/backend#destroy
     lois_index GET    /lois/index(.:format)               lois#index
      lois_show GET    /lois/show(.:format)                lois#show
    edito_index GET    /edito/index(.:format)              edito#index
  reponses_index GET    /reponses/index(.:format)           reponses#index
  reponses_show GET    /reponses/show(.:format)            reponses#show
  lettres_index GET    /lettres/index(.:format)            lettres#index
   lettres_show GET    /lettres/show(.:format)             lettres#show
       accueils POST   /accueils(.:format)                 accueils#create
   new_accueils GET    /accueils/new(.:format)             accueils#new
  edit_accueils GET    /accueils/edit(.:format)            accueils#edit
                GET    /accueils(.:format)                 accueils#show
                PUT    /accueils(.:format)                 accueils#update
                DELETE /accueils(.:format)                 accueils#destroy
           root        /                                   accueil#index
4

1 に答える 1

1

rake routes?の左側の列にあるルート名を参照してください。その情報を使用して、さまざまなパスヘルパーへの呼び出しを作成します。

<li><%= link_to 'Contenu', admin_contents_path %></li>
<li><%= link_to 'Petitions', admin_petitions_path %></li>

一般に、これがRails3+アプリでURLを構築する方法です。

詳細については、外部から内部へのRailsルーティングを読んでください(特に2.3:パスとURL)。

アップデート:

_pathにアクセスしたときにプルアップされているビューで、これらのスタイルのヘルパーの使用を検討する必要があります/admin/petitions

私はあなたがこれに似たページにリンクを持っているに違いない:

<%= link_to "Link Text", :controller => "edito", :action => "index" %>

にアクセスしたときにアプリ内にいるのでedito、名前空間で検索しようとしています。admin/admin/petitions

修正するには、次のように更新する必要があります。

<%= link_to "Link Text", edito_index_path %>

アプリ内のすべてのリンク、フォーム、参照について、洗い、すすぎ、繰り返しurl_forます。

于 2012-10-26T19:39:26.737 に答える