2012-02-23 5 views
0

У меня есть частичная настройка для получения данных о продажах iTunes, которые я получаю ежедневно. Я хочу отображать на своих страницах продуктов и т. Д. Мои продукты имеют первичный ключ, но этого нет в таблице данных продаж iTunes, поэтому мне нужно выполнить поиск, используя столбец UPC, как следующий лучший уникальный идентификатор. Это, наверное, очень просто, но как я могу это сделать?Запрос в столбце, отличном от первичного ключа?

<% render @product.itunes_datas %> 

ссылается следующий контроллер/метод:

@itunes_datas = ItunesData.find (:all) 

ли я просто определить другой метод в контроллере?

Мне нужно, чтобы это было гибким, если это возможно, поскольку поиск уровня продукта будет выполняться UPC, тогда как поиск уровня трека будет осуществляться через код ISRC.

Заранее спасибо.

ответ

1

Я не знаю, как вы получите информацию СКП от Apple, но до тех пор, пока у вас есть, вы можете выполнять поиск по нему с помощью какой из этих методов, которые вы любите больше всего:

ItunesData.where(:upc => 'UPC_Information_Here').all 
ItunesData.find_all_by_upc('UPC_Information_Here') 

Они «точно эквивалентны друг другу и найдут информацию на основе указанного вами столбца, а не первичного ключа.

+0

Спасибо, что выглядит идеально! Имя столбца является частью «UPC_Information_Here»? (У меня есть ежедневный отчет от Apple, который я импортирую в db btw). – Raoot

+0

Нет, имя столбца находится либо в имени символа, либо в имени метода. Более общий случай выглядит как '' 'ItunesData.where (: column_name => 'column_data'). All''' или' '' ItunesData.find_all_by_column_name ('column_data') '' '. – Veraticus

+0

О, хорошо, это имеет смысл. Благодаря! – Raoot

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