最好的我能找到的這個例子中唯一的網址是谷歌圖片頁面並選擇了特定圖像的URL。所選的每個圖像的URL都會更改。的Rails 3:創建一個視圖具有獨特的部分呈現
就我而言,我有一個筆記本電腦型號和嵌套註釋模型。在顯示所有筆記的視圖中,當用戶單擊筆記時,他/她將被帶到筆記展示視圖。相反,我希望它們在同一個視圖中顯示部分內容,但我希望URL更改爲包含有關選定記事的信息。
我該怎麼做?
最好的我能找到的這個例子中唯一的網址是谷歌圖片頁面並選擇了特定圖像的URL。所選的每個圖像的URL都會更改。的Rails 3:創建一個視圖具有獨特的部分呈現
就我而言,我有一個筆記本電腦型號和嵌套註釋模型。在顯示所有筆記的視圖中,當用戶單擊筆記時,他/她將被帶到筆記展示視圖。相反,我希望它們在同一個視圖中顯示部分內容,但我希望URL更改爲包含有關選定記事的信息。
我該怎麼做?
您可以在JavaScript replaceState()
做到這一點。當用戶點擊筆記打開筆記,你想要的任何方式(使用Ajax調用的實例),然後當它是開放的,你使用一個回調火replaceState()
功能將替換爲任何你想要當前的URL(我猜想你的筆記的網址)。
然後,當用戶進入你這個精確的網址網站,你可以解析URL,以顯示他要求的說明(或讓Rails的默認行爲重定向他的筆記顯示視圖)。
這裏是replaceState()
的文檔:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history#The_replaceState().C2.A0method
下面是一個使用jQuery來說明我的觀點對應的視圖的非工作示例:
= link_to "note", note_path(@note), id: 'x_link'
<script>
$('#x_link').click(function(e) {
e.preventDefault() //we do not let the event propagate
href = $(this).attr('href') //we get the href attribute of our note
$.get(href, function(data) {
show_partial(data) // write some method to display you partial
history.replaceState(null, null, href) //replace the current state
})
})
</script>
謝謝!我現在就試試,但看起來正是我需要的。 – kaustubhb
不客氣, ) – Raindal