2011-01-21 5 views
0

Я пытаюсь извлечь некоторые данные из массива со следующим синтаксисом:Извлечение данных из массива в БД (рельсы)

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

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

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

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

ответ

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 , так что я пытаюсь г ead из массива в записи (FeedURI), в котором содержится текущий (uri) –

+0

Хм, это кажется немного странным. Если поле базы данных называется FeedURI, оно не соответствует соглашению об именах rails ... Во всяком случае, я думаю, вы могли бы использовать синтаксис sql вместо: условия => [«FeedURI содержит?», Uri] Будет ли это работать? – DanneManne

+0

Спасибо за информацию об именах БД (я буду менять это сегодня). «содержит» выдает ошибку, я пробовал ее с «like» и «=», они оба работают, но ничего не возвращает ... очень странно. Мне придется еще больше погрузиться в синтаксис SQL. –

Смежные вопросы