0
重定向如何在rails中工作?我覺得它非常直觀和令人沮喪。下/views/mymodels/custom.html.erb
Rails 3重定向
我已經添加視圖文件我已經清空控制器的方法:
def custom
end
我有以下的routes.rb中:
resources :mymodel do
member do
get 'custom'
end
end
在我的控制器中我嘗試呈現模型創建時的自定義視圖:
respond_to do |format|
if @presentation.save
redirect_to action: "custom"
#format.html { redirect_to @mymodel, notice: 'Presentation was successfully created.'}
#format.json { render json: @mymodel, status: :created, location: @mymodel }
這會導致重定向呈現空白頁面。但瀏覽/mymodels/[id]/custom
工作正常。我究竟做錯了什麼?爲什麼render :action => "custom"
也無法工作?
編輯:
這工作:format.html { render action: "upload" }
但爲什麼呢?
爲什麼沒有普通redirect_to的工作? – Fdr 2012-04-22 11:00:56
因爲你將它放在'respond_to'塊中。註釋該塊並將'redirect_to'移到其外面並檢查。所有人都應該像你期望的那樣工作。 – jdoe 2012-04-22 11:16:49
但是你必須認識到,這種從'respond_to'移出的過程只能是爲了好玩,不能再有。在真實世界的應用程序中,您有義務使用響應程序 - 它是可讀的,它是一個RESTful,它是一種MVC兼容方法,用於在各種表示形式中顯示單個資源。通過這種方式,您可以輕鬆擴展您的產品,用於以json/xml/other格式進行表示,而無需添加新操作,更改路由和其他內容。 – jdoe 2012-04-22 12:46:46