Я еще не ясен на надлежащем способе выполнить необработанные SQL-запросы с Продолжением.
В настоящее время я пробую это:
DB.fetch("SELECT * FROM zone WHERE dialcode = '#{@dialcode}' LIMIT 1") do |row|
@zonename = row
end
Как может, я могу выполнить запросы, поскольку необработанный SQL затем получает доступ к результатам как нормальный?
if @zonename.name = "UK"
У меня есть несколько указателей, которые могут быть полезны:
Вы можете просто сделать:
@zonename = DB.fetch("SELECT * FROM zone WHERE dialcode = ? LIMIT 1", @dialcode).first
NB: вы игнорируете тот факт, что результатов, соответствующих критериям, может быть больше. Если вы ожидаете, что будет возвращено несколько возможных строк, то вы, вероятно, захотите создать массив результатов, сделав ...
@zonename = DB.fetch("SELECT * FROM zone WHERE dialcode = ? LIMIT 1", @dialcode).all
и обрабатываем их все.
Возвращаемый набор представляет собой хэш. Если @zonename
указывает на одну из записей, то можно сделать
@zonename[:column_name]
для ссылки на поле с именем "имя_колонки". Вы не можете сделать @zonename.colum_nname
(на самом деле вы можете украсить @zonename
вспомогательными методами с помощью некоторого мета-программирования, но давайте пока пропустим этот момент).
Sequel - отличный интерфейс, чем больше вы узнаете о нем, тем больше он вам понравится.