2012-06-20 26 views
0

形成我的Rails應用程序下面的網址,rails 3複雜的url,有害還是無害?它可以修復嗎?

"http://example.com/filter/filters?binding_id=1>1&escape=false&filter_type=publisher_id&from_pagination=0&genre_id=0>57&order=3&page=8&publisher_id=3>160&query=books&search_case=products&sub_category_id=1&tree_filter_id=115&utf8=%E2%9C%93&view_name=generic2d4e4c5333133cd814a2cb102571e4dc" 

這樣行嗎?

如果我在上面的URL中更改任何一個參數,代碼會崩潰,錯誤是合理的,因爲「過濾器」控制器的「過濾器」操作需要「參數」哈希中的所有這些。

這是好嗎?有沒有辦法解決這個問題?

請指教。

+0

你想達到什麼目的?也許發佈控制器代碼有助於理解。就像那樣,它聞起來;-) – Cygnusx1

+0

控制器代碼非常抽象我的意思是它從應用程序控制器調用方法,應用程序控制器就像800線。我沒有試圖取得任何成就。我只是看着這個URL的大小感覺不好。有這樣的網址可以嗎?這就是我想知道的。我的應用程序運行良好! – beck03076

回答

1

我可能是錯的,但它看起來像你試圖在URL中傳遞太多的參數。

看起來您正在使用HTTP GET將數據傳遞到您的控制器而不是HTTP POST。

通過POST,您可以使用HTML FORM將您的數據傳遞給控制器​​,並且您的網址會更清晰。

+0

你沒有錯。你是對的!。我使用get方法將數據傳遞給我的控制器,並且如您所建議的,我可以使用表單的隱藏字段標記和發佈方法來使我的url更清潔。謝謝你的回答。我現在的問題是,請確認我是否可以通過POST實現所有可以使用GET的方法。 – beck03076

+0

好吧,現在我陷入了困境!...如果我使用POST,然後將該URL粘貼到不同的瀏覽器上,那麼我不會打到正確的頁面,對吧? – beck03076

+0

當然,它實際上是web開發中的最佳實踐。當您想要將數據寫入/更新到您的服務器應用程序時,實際上想要從服務器和POST中讀取數據時才使用GET。這不僅適用於Rails,而且適用於Java .NET PHP等。 – Cygnusx1