【发布时间】:2015-11-16 22:49:28
【问题描述】:
对于测验应用程序,我试图显示当前用户尚未回答的活动问题。答案表有一个我正在尝试使用的 user_id 和 question_id。我以为我很接近以下查询(在 static_pages_controller.rb 中:
@questions = Question.active_question.where.not(id: @user.answers)
不过,当我测试它时,它似乎并不适用于所有情况。我觉得我很近,但不知道从这里去哪里。 Rails 的新手非常感谢任何帮助!
问题.rb
has_many :answers
scope :active_questions, -> { where("? BETWEEN start AND end", Time.now.to_date)}
scope :activeAtDate, lambda{ |date = Date.today| where("? BETWEEN start AND end", date) }
answer.rb
belongs_to :question
belongs_to :user
scope :user_answered, lambda {|q| where("question_id == (?)", q) }
validates_uniqueness_of :question_id, scope: :user_id
用户.rb
has_many :answers
static_pages_controller.rb
def index
@user = current_user
if user_signed_in?
if @user.manager_id != nil
@manager = @user.manager_id
end
@my_team = User.where("manager_id = ? AND id != ?", @manager, @user.id)
@questions = Question.active_question.where.not(id: @user.answers)
end
@new_answer = Answer.new
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4