Извлечь данные из массива в БД (рельсы)

0

Я пытаюсь извлечь некоторые данные из массива со следующим синтаксисом:

@entries_from_db = XrEntry.find(:all, :conditions => [:FeedURI => uri ], :select => 'json')

The: FeedURI - это запись, содержащая массив с uri [ "123456", "23345", "4453" ] Ури - это переменная, в которой содержится текущий uri.

Утверждение, которое я пытаюсь сделать, это "выбрать JSON из XrEntry, где FeedURI содержит uri" Я застрял на части, чтобы получить доступ к массиву и всегда получать несколько сообщений об ошибке при попытке использовать другой код.

Есть ли у кого-нибудь идеи? Спасибо!

Теги:
arrays

2 ответа

1
Лучший ответ

Я решил это с помощью этого синтаксиса

@entries_from_db = XrEntry.find(:all, :conditions => ["FeedURI like ?", "%#{uri}%"] , :select => 'json')

"% # {your_rails_variable}%" необходимо прочитать в массиве

0

Кажется, вы переключили синтаксис условий. вы можете начать с атрибута db, а затем с переменной.

@entries_from_db = XrEntry.find(:all, 
                                :conditions => { :uri => FeedURI }, 
                                :select => 'json')

Это вернет массив объектов XrEntry с атрибутом json. Чтобы получить массив только данных json, вы можете сопоставить его следующим образом:

@json_array = @entries_from_db.map(&:json)
  • 0
    Возможно, я неправильно объяснил: «FeedURI» - это запись в БД, содержащая массив URI. «URI» - это переменная с текущим URI, поэтому я пытаюсь прочитать массив из записи (FeedURI), которая содержит текущий (URI)
  • 0
    Хм, это кажется немного странным. Если поле базы данных называется FeedURI, оно не соответствует соглашению об именах рельсов ... В любом случае, я думаю, вы могли бы использовать вместо этого синтаксис sql: условие => ["FeedURI содержит?", Uri] Будет ли это работать?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню