Настройка пользователя Ruby on Rails - PullRequest
0 голосов
/ 08 октября 2009

В настоящее время у меня есть приложение ruby ​​on rails с 6 моделями, к которому я добавил authlogic. Общая настройка

User :has_many categories, topics,messages
Categories has_many topics,
Topics has_many messages 

(С и соответствующие противоположные ссылки принадлежат_).

Когда я пытаюсь получить доступ к current_user.categories.find (2), результаты не возвращаются в контроллер.

Кроме того, когда я пытаюсь запустить это

current_user.topics.find(params[:topic_id]).messages.build

Тогда

@msg = current_user.messages.build(params[:message])
@msg.save

Он не сохраняет идентификатор пользователя из has_many.

Все функции этой программы работали до добавления директив current_user.

Я ошибаюсь при настройке? Или с казнью?

Поскольку связь не сохраняется после сборки, могу ли я позже добавить поле user_id в модель?

Извините за все вопросы, и заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 октября 2009

Я думаю, что вам лучше всего идти шаг за шагом. Что возвращает current_user? Идентификатор этого пользователя соответствует одному в вашей БД? Есть ли у этого пользователя какие-либо категории? У кого-нибудь из них есть идентификатор 2?

Если вы можете изолировать свою проблему в одном слое в цепочечных вызовах, отладка будет намного проще.

0 голосов
/ 08 октября 2009

Спасибо, Кайл. Я решил проблему с помощью фильтра в модели вместо использования контроллера для назначения его при создании через ассоциацию. Current_user просто возвращает запись текущего пользователя, используя authlogic. Мне нравится, где проект находится в поклоне, и может развернуть его после некоторой визуальной настройки, безопасности и большего количества CSS :). Обратные вызовы и фильтры удивительны для всего, что вы разрабатываете. Также, если вам нужно получить переменную из application_controller для модели, используйте рубиновую переменную знака доллара, а не переменную экземпляра класса (at-sign). Rails настолько прост по сравнению с собственным приложением Php или sintra. Кроме того, сколько моделей используется для рельсовых приложений?

...