2015-03-03 59 views
0

如何使用rails 4新语法重写下面的代码。rails 4语法修改

Tracker.find(:all, :joins => :projects, 
         :select => "DISTINCT #{Tracker.table_name}.*", 
         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> #{STATUS_ARCHIVED}", lft, rgt], 
         :order => "#{Tracker.table_name}.position") 
+0

你可以用'where'。 – 2015-03-03 11:03:33

回答

1

下面是等价的方式:

Tracker.joins(:projects) 
     .where("#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> #{STATUS_ARCHIVED}", lft, rgt) 
     .select("DISTINCT #{Tracker.table_name}.*") 
     .order("#{Tracker.table_name}.position") 
+0

完美!感谢代码。我将练习这种新的语法! – Packer 2015-03-03 11:06:22