2015-03-05 4 views
0

Привет, ребята, у меня, наверное, есть простая проблема, которая раздражает меня в течение 2 часов.Rails - Не удалось найти control_action_path

Я пытаюсь настроить menu_item_icon, который связан с одним из моих действий с контроллером.

До сих пор каждый из этих menu_items Работа. Но есть один, где я всегда получаю сообщение об ошибке «Путь Controller_Action не найден», и мне интересно, почему это происходит.

Вот некоторые кодовые фрагменты из

  • а) определения controller_action сам
  • б) маршрут в routes.rb
  • с) menu_item_icon ссылка на некоторые мои взгляды

а) Определение действия в контроллере sells_controller.rb

def manage_sell 
    @stored_sells = SaveSell.all 

    respond_to do |format| 
    format.html{render 'manage_sells',:layout=>false} 
    end 
end 

б) маршрут для действий manage_sell в моем routes.rb

resources :sells, :only=>[:show,:new,:create] do 
    [...] 
    get :manage_sell, :on=>:collection 
    [...] 
end 

с) menu_item_icon ссылкой InOne моих мнений

[...] 
=menu_item_icon('m_sells','Manage Sells'),sells_manage_sell_path 
[...] 

Так что же происходит?

+0

Вместо использования 'sells_manage_sell_path' попробуйте использовать' '/ sells/manage_sell''' – RSB

+0

можете ли вы разместить вывод для« рейк-маршрутов », пожалуйста? – patrick

+0

Отпечаток рейк-маршрутов для ряда продает # manage_sell: ** manage_sell_sells GET /sells/manage_sell(.:format) продает # manage_sell ** – Yui

ответ

1

граблями маршрутов дает имя вы должны использовать, так что в вашем случае вы должны написать manage_sell_sells_path.

У меня есть комментарий относительно наименования: я бы предпочел более простой manage, и тогда все будет иметь смысл. Если вы определяете маршрут для члена, путь будет manage_sell_path.

Так что я думаю ваше определение маршрута должно быть

resources :sells, only: [:show, :new, :create] do 
    get :manage, on: :member 
end 

как именование теперь, кажется, подразумевает, что вы «управление» одно надувательство.

+0

Удивительный, вот и все! Спасибо. – Yui

1

Я думаю, что это будет

manage_sell_sells_path 

вместо

manage_sells_sell_path 

Потому что ваше действие

manage_sell 

и контроллер

sells 

Хотя нет никаких действий с именем «manage_sells» это поднять не «Controller_Action путь не найден» ошибки

+0

Действие не 'sell_manage', это' manage_sell'. – nathanvda

+0

Жаль, что это была моя ошибка, и я уже исправляю это. Спасибо @nathanvda –