Не удается получить доступ к пути, указанному командой rake routs - PullRequest
2 голосов
/ 08 декабря 2011

Я не могу правильно понять маршрутизацию в рельсах 3.1.

(помните, что я работаю над проектом, который зависит от драгоценного камня на НПЗ) В моих маршрутах у меня есть следующее:

Blog::Application.routes.draw do

  resources :news, :as => :news_items, :controller => :news_items, :only => [:show, :index]

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

Вывод команды rake routs:

news_items GET    /news(.:format)                              {:action=>"index", :controller=>"news_items"}
                              news_item GET    /news/:id(.:format)                          {:action=>"show", :controller=>"news_items"}
              refinery_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_refinery_admin_news_item GET    /refinery/news/new(.:format)                 {:action=>"new", :controller=>"refinery/admin/news_items"}
          edit_refinery_admin_news_item GET    /refinery/news/:id/edit(.:format)            {:action=>"edit", :controller=>"refinery/admin/news_items"}
               refinery_admin_news_item GET    /refinery/news/:id(.:format)                 {:action=>"show", :controller=>"refinery/admin/news_items"}
                                        PUT    /refinery/news/:id(.:format)                 {:action=>"update", :controller=>"refinery/admin/news_items"}
                                        DELETE /refinery/news/:id(.:format)                 {:action=>"destroy", :controller=>"refinery/admin/news_items"}

Следующий код в моем приложении приводит к ошибке:

<%= form_for [:refinery, @news_item] do |f| %>
<% end %>

Говорит мне, что следующий путь:

undefined method `refinery_news_items_path' for #<#<Class:0x0000010663c480>:0x00000106623980>

не существует.

Любой путь из команды rake routs просто не будет работать. Я уверен, что это проблема с настройкой. На самом деле я пишу плагин для драгоценного камня RefineryCMS без использования генератора плагинов, я просто создаю его так, как если бы это было обычное веб-приложение.

Мой проект размещен здесь для тех, кто хочет пика. http://github.com/mabounassif/blog

Кто-нибудь знает, в чем может быть проблема?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2011

Кажется, проблема была в том, как работает самоцвет Refinery CMS.По-видимому, я не должен использовать помощника URL сразу, вместо этого я должен использовать следующее:

0 голосов
/ 08 декабря 2011

Вы определяете область действия "refinery" как "refinery_admin", поэтому, когда вы выполняли свои рейк-маршруты, вы получаете refinery_admin_news_items

, если вы уберете это условие :as => 'refinery_admin', ваши маршруты вернутся обратнодо "нормального"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...