Tôi nghĩ rằng mã này là rõ ràng hơnRender controller action từ controller khác
tùy chọn A
class RedirectController < ApplicationController
def index
redirect_to :controller => 'posts', :action => 'show', :id => 1
# it works
end
end
tùy chọn B
class RedirectController < ApplicationController
def index
render :controller => 'posts', :action => 'show', :id => 1
# it doesn't work
end
end
là có thể trong (B) để tải một hành động trong một bộ điều khiển? (và không chỉ xem) Làm thế nào? Cảm ơn
Tại sao bạn muốn thực hiện việc này? Nó có thể tốt hơn nếu bạn cho chúng tôi biết vấn đề cơ bản mà bạn đang cố gắng giải quyết. –
"Vấn đề cơ bản" là tôi muốn được tự do thiết lập một số url như tôi muốn mà không cần chạm vào routes.rb – user142913
Chỉ cần làm rõ, Tùy chọn A của bạn không hiển thị hành động từ bộ điều khiển khác, nó trả lời yêu cầu hiện tại với chuyển hướng trỏ trình duyệt đến bộ điều khiển khác (do đó dẫn đến yêu cầu thứ hai truy cập bộ điều khiển khác). 'render: template => 'posts/show'´ tuy nhiên thực sự hiển thị trực tiếp mẫu của bộ điều khiển khác. Tất nhiên bạn cần thiết lập nội dung cho mẫu để hiển thị (như @post var) của bạn. Tôi không chắc chắn nếu tôi hiểu những gì bạn đang cố gắng để làm, nhưng thông thường bạn không thể thiết lập url mà không cần chạm vào routes.rb, vì đó là những gì routes.rb là tốt cho. – Zargony