Я использую Rails 3.1 и Devise. Как вы знаете, Devise использует таблицу User
как свою собственную. Я создал еще одну таблицу с именем User_Profile
, в которой хранятся профили пользователей. User_Profile имеет поле user_id
, чтобы связать его с User
.
Когда конкретный пользователь входит в систему, я хотел бы показать его никнейм, который хранится в User_Profile, поэтому я сделал следующее:
В модели пользователя я добавил has_one :user_profile
.
В модели User_Profile я добавил строку belongs_to :user
.
В «домашнем» контроллере я добавил эти:
before_filter :authenticate_user!
def index
@users = current_user
end
Я изменил представление "home / index" следующим образом:
<h1>User</h1>
<table>
<tr>
<th>UserNo</th>
<th>Nickname</th>
</tr>
<tr>
<td><%= users.id %></td>
<td><%= users.user_profile.nickname %></td>
</tr>
</table>
<br />
Но когда я перехожу на example.com/home/
, я получаю сообщение об ошибке. Я думаю, что я правильно сделал часть ассоциации, но, вероятно, не контроллер и часть просмотра. Как я могу заставить их работать правильно?