Rails ActiveRecord 關於多個資料表 joins 的問題請教

idarfan · 2012年04月19日 · 最后由 azhao 回复于 2012年04月19日 · 2442 次阅读

這個是我原先寫在控制器裏的方法,這是以前一個朋友教我的寫法 我現在碰到一個難題,除了要列出一定期間內收入為 30000 的學生. 還要列出它是因為工作需要才來選課的學生。請參考底下附圖

def money
    @level = Incomelevel.all.map{|im|[im.reason_desc , im.id]}
    render :layout =>"test_layout"
  end
  def show_money
    start_at = Time.parse(params[:start_at])
    end_at = Time.parse(params[:end_at])
    level = params[:level].to_i    
    @students = Student.all(:from => "student_incomelevelships AS si" , 
      :conditions => ["si.incomelevel_id = ?" , level] ,
      :joins => "INNER JOIN
        students ON students.id = si.student_id AND
        students.created_at BETWEEN DATE('#{start_at.strftime("%Y/%m/%d")}')
        AND DATE('#{end_at.strftime("%Y/%m/%d")}')")    
  end



像這樣的情況,我該如何將其 joins 在一起,並分別列出兩個條件式?懇請賜教

Student.includes(:whylearns, :student_incomelevelships).where("whyleans.reason_desc = ?", "工作需要").where("student_incomelevelships.incomelevel_id = ?", params[:level]).where("students.created_at between ? and ?", params[:start_at], params[:end_at])

感謝您的協助,我立馬去測試看看

哥,代码你就别截图了嘛,你那 Netbeans 好鹾啊!

yakjuly 您好: 我改成如下所述,但會報錯.. 能否請您看看這是什馬問題?

def money
   @level = Incomelevel.all.map{|im|[im.reason_desc , im.id]}
   render :layout =>"test_layout"
 end
 def show_money
   start_at = Time.parse(params[:start_at])
   end_at = Time.parse(params[:end_at])
   level = params[:level].to_i    
   #@students = Student.all(:from => "student_incomelevelships AS si" , 
   #  :conditions => ["si.incomelevel_id = ?" , level] ,
   #  :joins => "INNER JOIN
   #    students ON students.id = si.student_id AND
   #    students.created_at BETWEEN DATE('#{start_at.strftime("%Y/%m/%d")}')
   #    AND DATE('#{end_at.strftime("%Y/%m/%d")}')")    
   @Student.includes(:whylearns, :student_incomelevelships).where
   ("whylearns.reason_desc = ?",  "工作需要")
   .where("student_incomelevelships.incomelevel_id = ?",
     params[:level]).where("students.created_at between ? and ?",
     params[:start_at], params[:end_at])
 end

huacnlee 哥:好的好的,代码你就别截图了嘛,你那 Netbeans 好鹾啊!<= 中文太差不識得這字? 是指差嗎?還是醜?沒法子我不是用 mac 要怎麼讓它美觀一點。你分享一下好唄

如果工作的时候用 netbeans 习惯,那截图的时候就用 sublime text2 吧:)

azhao 您好:原來看起來好像 textMate 它能在 ubuntu 11.10 上跑嗎?可是它的風格看起來很灰暗,沒有亮點的模版

需要 登录 后方可回复, 如果你还没有账号请 注册新账号