Вы не можете получить доступ к хэшу "params" из модели Rails. Параметры только для вашего контроллера и представления для взаимодействия.
Вместо этого вы можете передать нужное значение из контроллера в модель с помощью чего-то вроде этого:
def self.location_history(location_id)
Location.find_by_sql("select * from locations a INNER JOIN hotspots b ON a.id = b.location_id INNER JOIN accounts c ON b.mac = c.account_id WHERE a.location_id= '#{location_id}'")
end
и в контроллере:
def index
@location_history = Location.location_history(params[:id])
end
Или еще лучше, что-то вроде этого в Rails 3 намного чище. Кроме того, это исключит параметр location_id из внедрения SQL.
def self.location_history(location_id)
joins(:hotspots, :accounts).where(:location_id => location_id)
end
В начале вам не нужно указывать "Местоположение", потому что это текущая модель. Если ваши ассоциации верны, вы можете использовать область «соединения», чтобы связать эти таблицы и просто передать нужный параметр «где»,