Где ошибка в этом я ее не вижу:
news = News.find(:all, :conditions => [":simulation_id => session[:sim_id] AND :created_at > session[:last_login]"])
Попробуйте это:
news = News.find(:all, :conditions => ["simulation_id = ? AND created_at > ?", session[:sim_id], session[:last_login]])
Строка условий не будет оцениваться должным образом:
[":simulation_id => session[:sim_id] AND :created_at > session[:last_login]"]
изменить это на
["simulation_id = ? AND created_at > ?", session[:sim_id], session[:last_login]]
Вы также можете позвонить Model.all вместо Model.find(:all), что будет выглядеть примерно так:
Model.all
Model.find(:all)
news = News.all(:conditions => ["simulation_id = ? AND created_at > ?", session[:sim_id], session[:last_login]])