0

在应用程序上,用户回答问题。每次他/她登录时,都会显示三个未回答的问题。用户可能会跳过(或回答!)一个问题,然后会出现另一个未回答的问题。

我一直在考虑查找未回答的问题并编写一个显示未回答问题的所有 id 的 cookie,以及另一个未在网页上显示问题的 id 的 cookie。

但是如果用户跳过一个问题,我很难弄清楚如何处理 cookie 之间的值交换

我还考虑将显示的问题存储为数据库中的答案,并使用特定值表示它们正在显示但尚未回答。但这可能是数据库密集型的。

我不是在找人给我代码,只是给我指出最合适的方法,我会自己编写代码。

我正在研究 Rails。

4

2 回答 2

1

为简单起见,我会将其保存在数据库中。我会有一个问题和答案表。这是一些骨架代码...

user_id
question_id
answer_status

class Answer < ActiveRecord::Base
  belongs_to :user
  scope :seen_but_unanswered, where(:answer_status => 'seen')
  scope :answered, where(:answer_status => 'answered')
end

class User < ActiveRecord::Base
  has_many :answers

  def unseen_questions
    ...
  end


end

然后,您可以提出以下请求:

@user.answers
@user.unseen_questions
@user.answers.seen_but_unanswered
@user.answers.answered
于 2012-08-02T16:51:03.970 回答
0

将所有这些信息存储在哈希中并使用会话?只要哈希不是非常大,这应该没问题。

session[:unanswered] = unanswered_hash unless session[:unanswered].present?

我不完全确定这是否涵盖了您想做的所有事情。

于 2012-08-02T16:19:07.527 回答