Модель на одной странице, разные макеты / виды. Как я могу использовать ИППП? - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть приложение, которое я создаю для изучения рельсов.Это простой менеджер страниц, который использует awesome_nested_set для создания вложенных страниц.Я хотел бы использовать STI, но не уверен, как это сделать.Большинство примеров STI, которые я вижу, включают в себя основную модель «Домашние животные» и подмодели «Собака» и «Кошка»;Мне трудно превратить это в пример из реального мира.Вот как я использую страницы.

3 разных «типа» страниц: блог, фотография, мобильные фотографии.Единственный способ действительно описать это - показать вам мой текущий сайт, созданный в Coldfusion Блог , Фотография , Фотографии для мобильных устройств .

Все используютта же таблица и почти те же атрибуты.Разделы с фотографиями используют атрибут photo и имеют некоторые незначительные изменения, такие как загрузка, изменение размера и т. Д., Но кроме этого между разными «типами» все одинаково.Основное различие между типами страниц заключается в том, как страница будет размечена и как к ним осуществляется доступ.Например:

По индексу:
/ photos - миниатюры макета для отображения всех страниц с типом «Фото»
/ blog - макет для отображения всех страниц с типом «Блог "

На шоу:
/ photos / 1 - показать большое фото с предыдущей / следующей фотографией
/ blog / 2 - показать запись в блоге с предыдущей / следующей записью

Нужен ли отдельный контроллер для каждого типа?Нужны ли мне отдельные модели, если мне не нужны какие-либо изменения в способе создания / обновления страниц?Я просто создаю маршруты, которые указывают на действие, которое отображает макет, который мне нужен?Я думаю, что вижу термин «ИППП» и усложняю его, чем должен быть.Я просто осторожен, потому что хочу научиться «рельсовому пути».Нужно ли мне даже ИППП?

Любая помощь будет принята с благодарностью, мне просто нужно преодолеть этот горб, кто-то, кто поможет сделать это "щелкнуть"!:)

1 Ответ

3 голосов
/ 10 декабря 2010

Здесь я написал сообщение в блоге , которое шаг за шагом поможет вам в достижении ИППП.

Что касается класса Photo, куда вы должны загружать изображения, вы можете сделать это

class Photo < Page

attr_accessor :photo_file_name, :photo_file_size, :photo_file_type

  has_attached_file :photo,
                  :url => "#{your_upload_url}",
                  :path => "#{your_upload_path}"
end

Если вы используете этот код, у вас должен быть столбец с именем photo в вашей модели страницы, в котором будет храниться имя_файла загруженного файла.

Надеюсь, это помогло вам. Я здесь, если вам нужны дополнительные предложения по этому вопросу. : D

UPDATE

После прочтения вопроса я понял, что вам также нужна отдельная страница для всех дочерних классов ИППП. Следовательно, для этого вам понадобятся разные контроллеры.

...