Myślę, że kod jest bardziej wyraźnyRender akcji kontrolera z innego kontrolera
opcja A
class RedirectController < ApplicationController
def index
redirect_to :controller => 'posts', :action => 'show', :id => 1
# it works
end
end
opcja B
class RedirectController < ApplicationController
def index
render :controller => 'posts', :action => 'show', :id => 1
# it doesn't work
end
end
jest możliwe w kolumnie (B), aby załadować kolejne działania w innym kontroler? (a nie tylko widok) Jak? Dzięki
Dlaczego chcesz to zrobić? Może być lepiej, jeśli powiesz nam podstawowy problem, który próbujesz rozwiązać. –
"Podstawowym problemem" jest to, że chcę mieć swobodę konfigurowania dowolnych adresów URL bez dotykania routes.rb – user142913
Dla wyjaśnienia, opcja A nie renderuje akcji z innego kontrolera, odpowiada na bieżące żądanie za pomocą przekierowanie, które kieruje przeglądarkę do innego kontrolera (dlatego powoduje to drugie żądanie, które trafia do drugiego kontrolera). 'render: template => 'posts/show'' jednak renderuje szablon innego kontrolera bezpośrednio. Oczywiście musisz ustawić rzeczy dla szablonu do wyświetlenia (jak twój @post var). Nie jestem pewien, czy rozumiem, co próbujesz zrobić, ale zazwyczaj nie możesz skonfigurować adresów URL bez dotykania routes.rb, ponieważ to jest to, do czego służy routes.rb. – Zargony