2011-03-29 2 views
0

Я хочу, чтобы у меня была возможность связать сообщение с пользователем, создавшим сообщение.«Сообщение», отправленное ассоциацией «Пользователь»

До сих пор у меня есть:

belongs_to :user in my post.rb 

и

has_many :post in my user.rb 

Я знаю, что я должен что-то добавить к моему контроллер сообщений, но я не знаю, что. Я хочу, чтобы каждый из моих сообщений имел «Отправленный: (информация пользователя здесь)» ...

Любая помощь? Заранее спасибо.

+0

Ответы не касались вашего вопроса о контроллере сообщений. Тем не менее, нет ничего особенного, что вам нужно делать в контроллере сообщений, кроме ссылки на пользователя, который связан с ассоциациями, которые вы создали в своей модели. Пока у вас есть действительный объект 'Post', ваши ассоциации вызовут запрос, который вытащит' User' по вашему желанию. – rynmrtn

+0

Я не понимаю, почему я продолжаю получать эту ошибку «undefined method' username »для nil: NilClass». У меня есть как owner_to: user в моей модели «Post», так и has_many: сообщения в моей модели «Пользователь» ... – ChrisBedoya

ответ

2

Вы можете получить доступ к пользователю, выполнив:

@post.user 

Таким образом, вы могли бы:

Posted By: <%= @post.user.username %> 

где @post переменная где пост существует.

Вы можете прочитать на assocations в рельсах here, а более конкретно в вашем случае here

Чтобы ответить на ваш вопрос, нет, вы не должны делать все, чтобы контроллеры для этой функции для работы.

+0

Привет. Я получаю undefined метод 'username ', когда добавляю код. Должен ли я добавить что-то к пост-контроллеру, чтобы автоматически связывать сообщение с пользователем, который его создал? – ChrisBedoya

+0

имя пользователя - это всего лишь образец атрибута пользователя. Я не уверен, как выглядит ваша модель пользователя. Используйте любой атрибут, идентифицирующий этого пользователя (имя, имя и т. Д.). –

+0

Это мой класс User.rb Пользователь ChrisBedoya

0

Вы можете ссылаться на эту ассоциацию, используя метод user, определенный на Post объектов по belongs_to:

<%= post.user.name %> 

Вы можете прочитать в associations guide.

+0

Продолжайте получать эту ошибку undefined method 'username 'для nil: NilClass – ChrisBedoya

+0

@ChrisBedoya: Это означает, что сообщение, к которому вы обращаетесь, не имеет связанного с ним объекта User. Вы должны связать сообщение с пользователем, установив поле user_id на этот объект post. –

+0

Спасибо за ответ, но так как я просто изучаю рельсы, я не знаю, где именно добавить это. Ошибка продолжает указывать мне на post_controller.rb. Я попытался добавить это @ post.user_id = current_user.username в «шоу» с тех пор, как там, где была ошибка, но я получаю то же имя пользователя error – ChrisBedoya

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