我正面临着这样一个奇怪的问题。请查看代码
today_date = Time.now.strftime('%Y-%m-%d')
patient_id = session[:patient_id]
query = QueryContainedModel.find(:first, :conditions => ["query_type = ?", 'appointment_reminder'])
以上查询以下面的形式生成query_value,即query_value
query_value = "SELECT PATIENT.NAME AS 'first_name' FROM PATIENT, REMINDER WHERE PATIENT.ID = '#{session[:patient_id]}'
AND REMINDER.PATIENT_ID = '#{session[:patient_id]}' AND REMINDER.DATE >= '#{today_date}'"
但我无法获取以下代码中的值
@value = ModelName.find_by_sql "#{query_value}"
@value.each do |value|
puts value.
end
答案 0 :(得分:1)
假设query = QueryContainedModel.find(:first, :conditions => ["query_type = ?", 'appointment_reminder'])
有效,为什么要在下一段代码中切换到SQL?您可以轻松地继续构建query
本身 - 我假设您的query
在这种情况下有效。
答案 1 :(得分:0)
问题是您正在尝试访问模型中的会话值,但会话对模型不可见,但仅对视图,帮助程序和控制器可见。
尝试将patient_id作为参数传递
例如,在您的控制器中
query = QueryContainedModel.find(:first, :conditions => ["query_type = ? and patient_id = ?", 'appointment_reminder', session[:patient_id]]