2017-08-09 91 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]