Как передать переменную в DB.from в сиквеле?

Я только начинаю использовать Sequel в Ruby, и мне это очень нравится.

Я хочу передать переменную методу "от". Поэтому вместо вызова такого метода:

DB.from(:items)

Я хотел бы вызвать метод с переменной. Например:

# both of the following approaches fail
tableName = "items"
DB.from(tableName)
DB.from(:tableName)

Но он терпит неудачу с ошибкой sql о значении, которого нет в моей переменной. Я не думаю, что это проблема сиквела... Я думаю, что это проблема "Я новичок в Ruby".

Как я могу передать переменную методу from выше?


person Brad Parks    schedule 19.02.2014    source источник


Ответы (1)


Выполните следующие действия, используя метод String#to_sym:

DB.from(tableName.to_sym)

Глядя на документацию Sequel::Database#from, кажется, он принимает все аргументы как символы. Таким образом, вам нужно преобразовать строковый объект, на который указывает локальная переменная tableName, в символьный объект.

person Arup Rakshit    schedule 19.02.2014
comment
Спасибо! я читал эти документы, но ничего из этого не понял... я попробовал метод to_sym, и он отлично сработал... - person Brad Parks; 20.02.2014