在我的Rails應用程序中,我試圖通過其'URL /models/:id
查看模型。未識別Rails URL參數
我使用兩種不同的方式生成URL:JavaScript
和Rails
,儘管它似乎是隨機的,控制器無法識別其操作中的id參數。在JavaScript
1路:
<a href='/conversations/" + conv_id + "'>" + conv_subject + "</a>
其中conv_id是我想要參觀樣板的ID。當我這樣做的Rails的方式發生
同樣的bug:
<%= link_to "Conv" , conversation_path(22) %>
當我剛剛把談話的id手。
控制器的動作看起來是這樣的:
def show
gon.current_user_id = current_user.id
gon.conversation_id = params[:id]
end
我顯示通過AJAX的內容。操作中有更多的代碼處理。 但關鍵點是,控制器似乎不承認params[:id]
。 只有在按下F5
後,第一次訪問/conversations/:id
後,控制器才識別出來。
在此先感謝!
編輯:
它發生控制器識別的ID,雖然GON
不會把它傳遞給JavaScript及時
編輯:
問題可能在於下資產管道,因爲我所有腳本都需要GON
鋪設在管道中,只有在按下之後纔會重新載入正確的
編輯:
由於問題出在我的JavaScript這裏是我到目前爲止所採取的做法。我試圖通過函數參數來外包資產管道中使用的所有GON變量,函數參數被傳遞給視圖中的函數。
資產管道功能:
// Load n messages
function loadMessages(page, n, conv_id) {
$.ajax({
url: '/conversations/ajax/fetch_messages',
data: 'n=' + n + '&page=' + page + '&id=' + conv_id,
dataType: 'JSON',
type: 'GET'
...
});
}
View功能:
<script>
$(function() {
// Load 10 Messages when the page is loaded for the first time
loadMessages(1, 10, gon.conversation_id);
});
</script>
編輯:
這是尼泊爾政府給了我,當軌道稱,它不知道ID 。這有點奇怪。
什麼調試器告訴我:
//<![CDATA[
window.gon={};gon.current_user_id=3;gon.conversation_id=22;
//]]>
什麼檢查員告訴我:
//<![CDATA[
window.gon={};gon.load_n_feedbacks_path="/feedbacks/ajax/load_n_feedbacks";gon.user_id="3";
//]]>
是的,謝謝。當我發佈問題時,在那裏發了一個大錯字^。^我將編輯我的問題 – JustBasti
感謝您的更新 - 您是否測試了conversation_path方式?我的意思是,你的路徑實際上叫做'conversation_path'嗎?我只是以此爲例 –
使用路徑方法或原始模型沒有任何區別,tbh。 link_to助手可以同時工作:-) – JustBasti