2012-07-02 69 views
0

對於每個original_url(由用戶輸入),我生成一個short_url,並將它們保存到db後,顯示short_url代替original_url。我能夠做到這一點。ROR ...從db中檢索數據

現在我想看看,如果一個URL已經縮短,所以它可以直接從數據庫中檢索,而不會再次短路。

我的想法是將用戶輸入的original_url與db中的值進行比較,如果發現直接檢索short_url,則縮短original_url

但我無法做到這一點...請幫助我。如果還有其他更好的想法,請告訴我。提前致謝。

def show 
    @url = Url.find(params[:id]) 
    if Url.find_by_original_url(@url.original_url) 
     @url.short_url 
    else 
     @short_url 
    end 
end 

回答

3

如果你正在填充short_url列,那麼爲什麼不檢查是否有內容?

def show 
    @url = Url.find(params[:id]) 
    unless @url.short_url 
     # shorten the URL 
    end 
end 

def show 
    @url = Url.find(params[:id]) 
    if @url.short_url 
    else 
     # shorten the URL 
    end 
end 
+0

這很好,但我怎麼能檢查用戶輸入的original_url已經在數據庫或不...如果發現我應該如何檢索original_url的SHORT_URL。 – Narendra

+0

感謝森讓代碼看起來很清晰... – Narendra

+0

感謝conner爲您的答案...我不使用的原因,除非我感到困惑,如果和除非....我只是覺得舒服,如果... – Narendra