我有从包含中获取元素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的所有属性。请指导我..
答案 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
上的月份和年份函数在数据库查询中完成所有操作。