检查签名cookie是否存在

时间:2013-05-06 17:43:14

标签: ruby-on-rails ruby session cookies

我有一个控制器,我从中创建一个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是否存在?

1 个答案:

答案 0 :(得分:0)

您要存储的内容不是视频数组,而是ActiveRecord::Relation,简而言之,是一个未经评估的查询。相反,您希望在new操作中执行查询并存储结果。

最简单的方法是写

@videos = Video.order("RANDOM()").limit(2).all