gpt4 book ai didi

ruby-on-rails - Rails 中变量的生命周期

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:48 26 4
gpt4 key购买 nike

我有以下代码:

   def show
@game = $site.new_game_of_type(params[:id])
@game.start
end

def update_game_time
render :partial => 'countdown', :layout => false
end

和倒计时部分:

<div id=countdown> <%= @game.running_time %></div>

在 show.html.erb 中我有:

Time: <div id="countdown"> </div>

<%= periodically_call_remote(:frequency => 0.5,
:update => 'countdown', :url => {:action => :update_game_time}) %>

我想在节目显示的页面中创建一个游戏,所以我会有很多 ajax 移动到那里,但用户不会点击任何地方。 Controller 的所有操作都将从 Javascript 调用。

我收到@game 为零的错误。即使在方法 update_game_time 中也是零当用户在该页面中时,如何使@game 变量保持有效?

最佳答案

如果您希望@game 对象在请求之间持续存在,您需要将它存储在某个地方。有很多方法可以做到这一点(例如,您可以使它成为一个 ActiveRecord 对象并将其保存在数据库中)但在我看来您想要使用 session 。可以在 http://www.quarkruby.com/2007/10/21/sessions-and-cookies-in-ruby-on-rails 找到有关在 Rails 中使用 session 的主要问题的很好的概述。但基本用法是:

def show
@game = $site.new_game_of_type(params[:id])
@game.start
session[:game] = @game
end

def update_game_time
@game = session[:game]
render :partial => 'countdown', :layout => false
end

关于ruby-on-rails - Rails 中变量的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/836075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com