2009-09-28 4 views
4

Другой новичок Ruby on Rails вопрос:Ruby on Rails: Доступ к информации от других моделей?

В моем представлении, я хочу показать имя автора. В таблице почтовых баз данных хранится идентификатор авторов, который совпадает с столбцом идентификатора пользователя в таблице users. Пользователь также имеет столбец имени пользователя в таблице пользователя.

Итак, имея идентификатор пользователя, как мне получить имя пользователя?

+0

.. и я окажусь сюда через Google через год. здорово! –

ответ

10
User.find(user_id).username 

- один способ.

Если вы должны были иметь belongs_to отношений между почтой и пользователем было бы

post.user.username 

который является гораздо более "путем Rails.

+0

Ничего себе, это было легче, чем я ожидал>. <. Это нормально использовать в представлении? –

+1

Второй, безусловно, есть. Первый меньше. – DanSingerman

+0

Хм, у меня есть «принадлежит_авто: пользователь» в моей модели публикации, но post.user.login не работает –

0

Если у вас есть идентификатор автора сообщения, вы должны передать его методу поиска в своем классе пользователя. что-то вроде этого «User.find (post.author_id)» даст пользовательский объект, чтобы вы могли получить имя пользователя.

3

В сообщении вашей модели, вы должны иметь:

belongs_to :author, :class_name => 'User' 

Тогда из вашей точки зрения, вы можете получить доступ к имени пользователя с @ post.author.username

+0

Спасибо. Я получаю «У вас есть нулевой объект, когда вы этого не ожидали! Ошибка при оценке nil.login« хотя –

+0

Возможно, вам нужно будет добавить: foreign_key => 'authors_id' (или любое другое имя вашего столбца) если это не предсказуемо по рельсам. – Swards

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