Rails – 如何在不重新加载页面的情况下刷新页面?

Rails – 如何在不重新加载页面的情况下刷新页面?

我正在构建一个应用程序,它具有每次人们访问该页面时都会发出随机数(随机记录)的function,但问题是当用户访问该页面时,会给出一个随机数,但该数字会发生变化再次,如果用户刷新页面。

即使用户刷新页面或返回该页面时,如何保留该随机数,随机数保持不变。

我想在浏览器中禁用刷新function会阻止用户刷新页面,从而阻止他们更改随机数,但在研究之后,看起来禁用刷新function似乎是一个好主意。

有没有其他方法可以实现它?

—- —-更新

我试过了

#posts_controller.rb def new @random = cookies[:stuff] ||= Stuff.random end 

并且在我的视图中调用@random.content ,因为我只想要Stuff模型的内容,第一次没问题但是当我刷新页面时,它为我提供了undefined method 'content' for "#":String什么事了?

您可以在控制器操作中执行此操作:

 # ex. app/controllers/index_controller.rb def index session[:random] ||= rand(10000) end 

这将生成0到10000之间的随机数,并将其保存在用户的会话中 , 前提是它之前尚未存在。 这意味着在关闭浏览器之前 ,每个特定用户都是一样的。

如果您想在关闭浏览器后仍然存在,那么您可以使用cookie代替:

 cookies[:random] ||= rand(10000) 

您可以通过任何自定义方法替换rand(10000)调用。