0

我从 include 获取元素 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

结尾

结尾

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

4

1 回答 1

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.

于 2013-10-11T10:38:11.170 回答