Я только начал работать с Rails, и у меня возникла проблема с определением маршрута.Кажется, ни одна из документации, которую я могу решить, не решает проблему, и я получаю неопределенную локальную переменную или ошибку метода.
Мне нужно щелкнуть ссылку и выполнить определенное действие, sortit.У sortit нет представления, потому что он сортирует объекты mystuff и затем перенаправляет на страницу индекса.Когда я использую одно из предопределенных действий, то фактически все работает.Конечно, ни одно из предопределенных действий не является тем, что я хочу сделать.
my /config/routes.rb file:
match "/mystuff/sortit'", :controller => "mystuff", :action => "sortit"
resources :mystuff
my /app/controllers/mystuff_controller.rb file
class MystuffController < ApplicationController
....
def sortit
@mystuff.sort
redirect_to_mystuff_path
end
....
end
my / app / views / mystuff/index.html.haml file:
-# This file is app/views/mystuff/index.html.haml
%h1 All My Stuff
%table#mystuff
%thead
%tr
%th= link_to raw("Type"), sortit
....
Как я уже говорил, когда я заменяю sortit на предопределенное действие, то это действие выполняется.Однако sortit завершается неудачно с этой ошибкой:
undefined local variable or method `sortit' for #<#<Class:0x9997a10>:0x997c0f8>
app/views/mystuff/index.html.haml:7:in `_app_views_mystuff_index_html_haml__61272557_87671610'
Итак, что я пропустил и как я могу выполнить sortit при нажатии на сгенерированную ссылку для Типа?
Спасибо!
PS: вывод моих рейковых маршрутов:
mystuff GET / mystuff (.: Format) {: action => "index",: controller => "mystuff"}
....
mystuff_sortit / mystuff / sortit (.: Format) {: controller => "mystuff",: action => "sortit"}
....
Таким образом, Rake Routes показывает мой маршрут с именем mystuff_sorit, но разве действия не добавляются к имени объекта?Разве это не должен быть sortit_mystuff?