簡體   English   中英

是否可以在沒有額外的請求/響應的情況下完成HTTP重定向?

[英]Can HTTP redirects be accomplished without an extra request/response?

我正在編寫一個Rails應用程序,其中有兩個方法,即“列表”和“查詢”。 這是一個簡化的版本:

class ApplicationController < ActionController::Base
    def query
        # query based on user-form text in params[:q]
        @list = Product.where(Product.arel_table[:description].matches("%#{params[:q]}%"))
        if @list.count == 1
          redirect_to :action => 'list', :id => @list[0].id
        end
    end

    def list
        @item= Product.find(params[:id])
    end
 end

到目前為止,最常見的用戶模式是輸入產生單個產品的搜索。 發生這種情況時,我希望該URL重定向到restful

http://myurl/list/:id

而不是

http://myurl/query?q=search-query. 

但是在上面的代碼中,我兩次訪問數據庫以獲取相同的記錄,並為每個查詢創建2個http請求/響應。 不是世界末日,但我想知道是否有更好的方法。 (運行查詢時,我已經有了模型對象)

有沒有一種干凈的方法可以從查詢操作中呈現列表操作的視圖,並在沒有額外請求/響應的情況下告訴瀏覽器新的URL?

不在http協議的約束之內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM