2013-11-05 24 views
0

我已经创建了一个测验,并且我在每页显示了一个项目..我想要当前用户访问的问题ID的值。在此代码我给下一个和它由当前用户呈现我想要的访问问题ID的问题如何找到当前用户使用的ID

def next 
@user = current_user 
@student = Student.find_by_admission_no(@user.username) 
@exam_group = ExamGroup.find_by_id(params[:exam_group_id]) 
@answer = Answer.new(params[:ans]) 
@answer.answer = params[:answer] 
@answer.exam_group_id = @exam_group.id 
@answer.user_id = @user.id 
passed_question = params[:passed_question] 
@answer.questions_id = passed_question 
next_question = params[:next_question] 
@question = Question.find_by_id(passed_question) 
@module = Question.find_by_sql ["SELECT student_additional_field_id FROM questions WHERE id=#{passed_question}"] 
student_additional_field_id = @module[0].student_additional_field_id 
@questions = Question.find(:all, :conditions => [' exam_group_id=? && student_additional_field_id=? ',@exam_group,student_additional_field_id], :offset => @ans) 

@ques = [] 
@questions.shuffle.each do |a| 
    @ques.push a.id unless a.id.nil? 
end 
a = @ques[0] 
session[:ques_id] = a 
@answer.modules_id = student_additional_field_id 
    if params[:answer] == @question.is_answer 
    @answer.marks = 1 
    else 
    @answer.marks = 0 
    end 

if @answer.save 
    @ans = Question.find_by_id(a, :conditions => [' id not in (?) && exam_group_id=?',answered, @exam_group]) 
    unless @ans.nil? 
    render(:update) do |page| 
     page.replace_html 'main', :partial => 'ans', :object => @ans 
    end 
    else 
    render(:update) do |page| 
     page.replace_html 'main', :partial => 'ans2' 
    end 
    end 
end 
end 
+0

[面条代码(http://en.wikipedia.org/wiki /意大利面_代码)>。< –

回答

0

看来你的问题是做Rails model associations:为什么我们需要模型之间的关联

?因为它们使代码中的操作变得更简单更简单。例如,考虑一个简单的Rails应用程序,其中包括客户模型和订单模型 。每个客户可以有多个订单


ActiveRecord关联

ActiveRecord关联允许定义一个primary_key(典型的ID),它可以在其他表通过foreign_key然后引用。外键通常是表列将被称为像user_id,或者其他类型的ID的

您可以使用这些功能,你的模型相关联:

  • belongs_to的
  • HAS_ONE
  • has_many
  • has_many:through
  • has_one:through
  • has_and_belongs_to_many

要回答你的问题,你显然得到current_user ID好 - 所以,如果你设法让关系设置正确,你可以从字面上所说的数据是这样的:

@user = User.find(current_user.id) 
@exam_group = @user.exams_groups 

我会去你的代码&把更多的信息到它....但我认为你需要了解第一ActiveRecord关联