Rails 3.0 проблема маршрутизации - PullRequest
0 голосов
/ 22 августа 2011

Итак, я создал именованный маршрут следующим образом:

match 'deactivate/:id' => 'events#deactivateEvent', :constraints => {:id => /\d+/}, :via => [:get, :post]

На мой взгляд, у меня есть такая строка кода:

 <%= link_to 'Deactivate', deactivate_path(@event.id) %>

Теперь я получаю следующую ошибку: NoMethodErrorв событиях # show

Отображение C: /Users/redbush/Desktop/ticket/app/views/events/show.html.erb, где поднялась строка # 33:

неопределенный метод `deactivate_path 'для # <#: 0x817f050>

Извлеченный источник (вокруг строки # 33):

 30: <% end %>
 31: 
 32: <% if @event.approval && !@event.deactivated && @event.active && @event.sales_start < Time.now %>
 33:    <%= link_to 'Deactivate', deactivate_path(@event.id) %>
 34: <% end %>

Так что я действительно запутался, почему это не работает.

Любойидеи?

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Поскольку вы настраиваете ручной путь match, вам необходимо предоставить ему именованный маршрут, который вы хотите использовать, используя параметр :as:

match 'deactivate/:id' => 'events#deactivateEvent', 
      :constraints => {:id => /\d+/}, 
      :via => [:get, :post], 
      :as => :deactivate

(см. 3.6 ИменаМаршруты в руководстве Rails Routing )

1 голос
/ 22 августа 2011

добавить:

:as => :deactivate

в конце вашего маршрута

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