2009-04-21 2 views
0

Я использую плагин BaseWithoutTable для расширения ActiveRecord. Это позволяет мне создавать модели без базовых таблиц (я получаю данные из веб-службы). Я хотел бы, чтобы мое веб-приложение оставалось спокойным, однако я не понимаю, как это сделать без отношений.Rails: Мимические отношения в tableless activerecord

Чтобы быть более конкретным, допустим, у меня есть модель книги и модель автора, и я получаю оба ресурса от веб-службы. Я хотел бы получить доступ к книжным ресурсам, например/authors/1/books.

Кажется, может быть два маршрута, которые я мог выбрать. Во-первых, взломайте отношения (belongs_to, has_many), чтобы я мог определить свой собственный, не требуя внешних ключей. Во-вторых, я мог бы создать пользовательские маршруты и методы контроллера, которые позволят мне получить доступ к предыдущему URL-адресу.

Если у кого-то есть мысли о том, как это сделать, я был бы очень признателен.

Спасибо и дайте мне знать, если вам нужна дополнительная информация.

ответ

0

Для указанного URL вы можете сделать что-то вроде следующего.

/авторы/1/книги

class Books < ApplicationController 
    before :find_author 

    def show 
    @books = Books.get_from_web_service_for_author(@author) 
    end 

    def find_author 
    @author = params[:author_id] 
    end 
end 

Вам нужно будет определить метод доступа к вашей веб-сервиса, а также имеют вложенную ресурс, определенный в маршрутах.

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