Активный ресурс в Rails 3.0, вложенный ресурс с нестандартным идентификатором - PullRequest
1 голос
/ 15 февраля 2011

У меня есть приложение rails, которое должно ссылаться на другое приложение rails, чтобы заполнить некоторые из его моделей, и я использую Active Resource для этого.

Когда мне нужно пройти маршрут как:

/channels.xml

Нет проблем вообще, я могу просто использовать автоматическое отображение ...

Но я ТАКЖЕ должен быть в состоянии обработать маршрут как:

/channels/1/programs.xml

И вот где я застрял.

Просто глядя на документы, это выглядит так, будто это может считаться обычным спокойным маршрутом, и в этом случае я бы застрял, делая ужасно грязный вид:

Channel.first.get(:programs)

Что не только выглядит ужасно, ТАКЖЕ не работает (приложение rails, которое фактически имеет данные, видит

/channels//programs.xml

без идентификатора. Что, вы знаете, здорово, поскольку все становится еще более сложным, а модель «Канала» в этом другом объекте rails создается из устаревшей базы данных, которая не имеет в виду rails (и, следовательно, не имеет столбца «id»). Вместо этого он использует "station_id".

Итак, если я должен использовать этот грязный метод Channel.get, как я могу убедиться, что он правильно устанавливает идентификатор? Могу ли я сделать это из приложения ActiveResource, или мне нужно изменить что-то в исходном приложении rails?

Редактировать: На всякий случай, если кто-то предлагает это, я пробовал Channel.first.get (: Programs,: ID => 1), но это просто дает мне маршрут, как:

/ каналов // programs.xml? ID = 1.

Может быть, мне придется отказаться от спокойных маршрутов и просто вытащить оттуда идентификатор .... но я действительно не хочу ...

1 Ответ

0 голосов
/ 01 сентября 2012

посмотрите на то, что называется prefix_options

self.prefix_options[:channel_id] = <some channel_id>
...