Rails: где разместить файлы плагинов - PullRequest
2 голосов
/ 24 января 2010

Я относительно новичок в Rails и недавно обнаружил пару полезных гемов, таких как authlogic , которые помогут быстро и быстро начать работу над проектом. Однако мне было интересно, где разместить файлы модели, представления и контроллера, которые зависят от плагина, но являются основными концепциями моего проекта.

Например, лучше ли размещать модели User, Role, Session и т. Д. И связанные с ними контроллеры с плагином в каталоге vendor/, или я должен поместить их в корень model/, view/ и controllers/ каталогов соответственно?

Ответы [ 3 ]

2 голосов
/ 24 января 2010

Даже модели / представления / контроллеры, зависящие от плагинов, должны храниться в каталогах app/model, app/view и app/controllers вместе с другим вашим кодом.

«Структурная» причина заключается в том, что основная масса всех этих файлов по-прежнему будет относиться к вашему приложению. Вы, вероятно, в конечном итоге добавите поля пользователю или добавите операторы has_many в свою модель User и т. Д. Вы хотите весь этот код вместе с остальным кодом основного приложения в каталоге app.

«Функциональная» причина в том, что vender/plugins является только для кода, конкретно относящегося к этому плагину, и обрабатывается по-разному во время разработки. Например, когда вы добавляете новый плагин, он не загружается автоматически в режиме разработки. Поэтому, если бы ваши основные файлы были там, они не были бы автоматически перезагружены даже в режиме разработки.

1 голос
/ 24 января 2010

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

У Райана Бейтса есть два покрытия authlogic и authlogic с OpenID и в ожидании вашего следующего шага после аутентификации-авторизации: у него также есть некоторый контроль доступа: декларативный Авторизация и CanCan .

1 голос
/ 24 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...