Question

Quels sont les paramètres de base sont nécessaires pour faire de routage que les aides de nom url travail?

Par exemple, dans ma route que je donne les résultats suivants:

Blog::Application.routes.draw do
  resources :news, :as => :news_items, :controller => :news_items, :only => [:show, :index]

  scope :module => "refinery" do
    scope(:path => 'refinery', :as => 'admin', :module => 'Admin') do
      resources :news, :except => :show, :as => :news_items, :controller => :news_items
    end
  end
end

mais ce qui suit ne semble pas fonctionner:

new_refinery_news_url

je continue à obtenir l'erreur

variable locale définie ou méthode `new_refinery_news_url '

Je suis assez sûr que quelque chose manque dans la façon dont je l'ai configuré ma demande, qui est le routage principal est la pierre précieuse RefineryCMS qui a été ajouté dans le Gemfile.

Toutes les pensées?

Était-ce utile?

La solution

Nous avons dû utiliser main_app.new_refinery_news_url à la place.

Autres conseils

Le nom de l'aide sera new_admin_news_item_url.

Il est facile de trouver tous les itinéraires et leurs méthodes d'assistance. Il suffit de lancer rake routes et vous verrez:

          news_items GET    /news(.:format)                   {:action=>"index", :controller=>"news_items"}
           news_item GET    /news/:id(.:format)               {:action=>"show", :controller=>"news_items"}
    admin_news_items GET    /refinery/news(.:format)          {:action=>"index", :controller=>"refinery/Admin/news_items"}
                     POST   /refinery/news(.:format)          {:action=>"create", :controller=>"refinery/Admin/news_items"}
 new_admin_news_item GET    /refinery/news/new(.:format)      {:action=>"new", :controller=>"refinery/Admin/news_items"}
edit_admin_news_item GET    /refinery/news/:id/edit(.:format) {:action=>"edit", :controller=>"refinery/Admin/news_items"}
     admin_news_item PUT    /refinery/news/:id(.:format)      {:action=>"update", :controller=>"refinery/Admin/news_items"}
                     DELETE /refinery/news/:id(.:format)      {:action=>"destroy", :controller=>"refinery/Admin/news_items"}

Avec les moteurs montables vous avez toujours besoin de spécifier « main_app. » (Ou pour les liaisons de raffinerie « raffinerie ».) Préfixe, car les moteurs sont isolés à partir de l'application.

Une solution, si vous utilisez les routes en dehors de la raffinerie, est préfixer le named_path avec l'objet Rails qui contient les méthodes pour les routes nommées

Rails.application.routes.url_helpers.new_admin_news_item_path
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top