我有一个控制器,我从中创建一个cookie,其中包含有关我正在开发的游戏的信息。我遇到的问题是当我在该控制器中使用另一个动作时值会改变。
这是我的控制者:
def new
@videos = Video.order("RANDOM()").limit(2)
if !cookies.signed[:game]
cookies.signed[:game] = {
:value => @videos,
:domain => 'localhost',
:secure => !(Rails.env.test? || Rails.env.development?)
}
end
end
def start_game
respond_to do |format|
format.js
end
end
start_game.erb.js
console.log('<%= cookies.signed[:game].first.titel %>') # This should print out the same value but it doesn't do that.
new.html.erb
...
<%= button_to "game", { :action => "start_game" }, { :remote => true, :form_class => "test_button" } %>
我可以检查签名的cookie是否存在?
答案 0 :(得分:0)
您要存储的内容不是视频数组,而是ActiveRecord::Relation
,简而言之,是一个未经评估的查询。相反,您希望在new
操作中执行查询并存储结果。
最简单的方法是写
@videos = Video.order("RANDOM()").limit(2).all