2012-06-13 14 views
6

To zupełnie nowy projekt. Oto dokładne polecenia Zabrakło mi:Dlaczego metoda działania kontrolera Railsa wymaga parametru

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image

Dodałem tę jedną trasę:

  1. root :to => "image#process"

Dodałem tę funkcję do ImageController (image_controller.rb)

def process 
    render :nothing => true 
end 

I wreszcie usunęliśmy domyślnego index.html. Kiedy uruchamiam projekt, ma błąd mówiąc, że proces oczekuje 0 parametrów, a nie 1. Więc zmienię metodę, aby powiedzieć mi, jaki parametr próbuje wysłać do przetworzenia.

def process(arg) 
    p arg 
    render :nothing => true 
end 

Ciąg "proces" jest drukowany na ekranie. Zrobiłem kilka projektów Rails wcześniej i nigdy tego nie spotkałem. Czy gdzieś tęsknię za krokiem? Czy jest to coś nowego w Rails 3.0.10? A może spowodowane przez Ruby 1.9.2? Myślę, że zwykle używam 1.8.7.

Odpowiedz

11

Nie możesz nazwać akcji jako process, jest to wewnętrzna metoda dla kontrolerów szyn, nazwij ją czymś innym.

Istnieje kilka innych nazw, których nie można użyć do działań kontrolera, takich jak render, params, request. Niestety nie ma listy tych rzeczy.

+0

Och, nawet o tym nie pomyślałem. Dzięki! – Spidy

+0

Ahh .. Zaoszczędziłem mnóstwo czasu. Dzięki! – rdsoze

Powiązane problemy