如何从include获取id?在铁轨

时间:2013-10-11 10:30:58

标签: ruby-on-rails

我有从包含中获取元素ID的问题吗?控制器级别的功能。

def payslip_report
if params[:teacher_id] and params[:month_year].present?
   @month_and_year =   params[:month_year].gsub(' ','')
   @teacher_data   =   TeacherPayslip.where(:teacher_id => params[:teacher_id])
   @salary = Array.new
   @teacher_data.each do |i|
   a = i.salary_date.strftime("%B%Y")
   @salary << a 
end
   #raise @salary.inspect
   if @salary.include?(@month_and_year)
    raise "1"
  else
    raise "2"
  end

如果@ salary.include?(@ month_and_year)意味着,如果它是真的意味着,如何获取包含元素的id。使用该id我可以获得该id的所有属性。请指导我..

1 个答案:

答案 0 :(得分:0)

您可以使用select过滤掉匹配的记录:

@matched_records = @teacher_data.
                   select{|t| t.salary_date.strftime("%B%Y") == @month_and_year}
# => returns an array of TeacherPayslip records with matching month and year

if @matched_records.blank?
   //no match found
else
   first_match = @matched_records.first
end

其他可能更好的解决方案是使用salary_date上的月份和年份函数在数据库查询中完成所有操作。