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

时间:2014-03-03 10:58:11

标签: ruby-on-rails cookies random ruby-on-rails-4

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

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

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

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

还有其他方法可以实现吗?

---- ----更新

我试过了

#posts_controller.rb    

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

并在我的视图中调用@random.content,因为我只想要Stuff模型的内容,第一次没问题,但是当我刷新页面时,它会给我undefined method 'content' for "#<Stuff:0x0000010331ac00>":String什么&# 39;继续?

1 个答案:

答案 0 :(得分:2)

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

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

这将生成0到10000之间的随机数,并将其保存在用户的session中,如果之前尚未存在的话。这意味着每个特定用户都会相同,直到关闭浏览器。

如果您想在关闭浏览器后仍然存在,那么您可以改为使用cookies

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

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