2017-08-09 90 views

回答

0

變量保存您分配給它們的值。當您正在進行隨機記錄(使用sample)時,查詢結果是從數據庫中提取的隨機記錄,因此這兩個變量的值爲隨機

如果要將可預測記錄分配到@post_a@post_b,則需要更新查詢以獲取所需的記錄。

例如,獲取由ID:

@post_a = Post.find(1) 
+0

假設你在「他們沒有改變」的意思是「@ post_a」和「@ post_b」,他們的確在改變請求(包括重定向),與你寫的內容相反。這就是這個問題的重點。這個答案顯然是錯誤的。 – sawa

+0

是的,我的意思是變數。我在迴應中確實不清楚,我的意思是記錄的內容沒有改變,改變的是隨着隨機記錄被提取而賦予變量的值。 –

0

它是RESTful的一個基本屬性,因此,狀態少,像那些由對請求的響應不能直接訪問什麼是在完成的Rails創建系統另一個迴應。除了響應之外,所有要訪問的內容都必須保存在某個地方,通常是數據庫。

爲了從第二個響應訪問您在第一個響應中設置的變量的值,標準的方法是將信息保存在session中。你也許可以閱讀this

鑑於您使用重定向,另一種方法是在調用重定向時將值作爲參數傳遞給路徑幫助器方法。而不是做:

redirect_to foo_bar_path 

你可以這樣做:

redirect_to foo_bar_path(post_a_id: @post_a.id, post_b_id: @post_b.id) 

,然後在重定向目的地的控制器動作,您可以訪問的@post_apost_b的ID爲params[:post_a_id]params[:post_b_id]