2013-09-07 4 views
2

Я следую учебному пособию Майкла Хартла ROR, и по какой-то причине мои пользователи получают возврат в браузере как шестнадцатеричный вместо имени. Почему это?Почему результат возвращает hex вместо фактического значения?

class UsersController < ApplicationController 

def index 
@users = User.all 
end 

def new 
end 


end 


class User < ActiveRecord::Base 
# Include default devise modules. Others available are: 
# :token_authenticatable, :confirmable, 
# :lockable, :timeoutable and :omniauthable 
devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
# attr_accessible :title, :body 

has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy 
has_many :followed_users, :through => :relationships, :source => :followed 
has_many :reverse_relationships, foreign_key: "followed_id", class_name:  "Relationship", :dependent => :destroy 

has_many: последователи: через =>: reverse_relationships,: Источник =>: последователь

def following?(other_user) 
relationships.find_by(followed_id: other_user.id) 
end 

def follow!(other_user) 
relationships.create!(followed_id: other_user.id) 
end 

def unfollow!(other_user) 
relationships.find_by(followed_id: other_user.id).destroy! 
end 


end 

<h1>All Users</h1> 

<ul class="users"> 
<% @users.each do |user| %> 
<li> 
    <%= link_to user, user %> 
</li> 
<% end %> 
</ul> 

<% provide(:title, @user) %> 
<div class="row"> 
<aside class="span4"> 
    <section> 
     <h1> 
      <%= @user %> 
     </h1> 
    </section> 
    <section> 
    </section> 
</aside> 
<div class="span8"> 
    <%= render 'follow_form' if signed_in? %> 
</div> 
    </div> 

ответ

3

Его не Hex, его возвращение в object.Try для печати user.name или атрибут или поле у ​​вас есть в пользовательской таблице для имени пользователя. Попробуйте с:

<%= link_to user.name, user %> 

вместо

<%= link_to user, user %> 

и

<%= @user.name %> 

вместо того, чтобы

<%= @user %> 

Все пользователи

<ul class="users"> 
<% @users.each do |user| %> 
<li> 
    <%= link_to user.name, user %> 
</li> 
<% end %> 
</ul> 

<% provide(:title, @user) %> 
<div class="row"> 
<aside class="span4"> 
    <section> 
     <h1> 
      <%= @user.name %> 
     </h1> 
    </section> 
    <section> 
    </section> 
</aside> 
+0

Я пробовал это раньше, и я получаю сообщение об ошибке «неопределенный метод» для # <Пользователь: 0xb6ece01c>. Любые предложения о том, как это исправить? –

+0

Я думаю, вы не определили пользовательские атрибуты в своей модели пользователя. здесь вставьте код перехода пользователя. –

+0

класс DeviseCreateUsers false,: default => "" t.string: encrypted_password,: null => false,: default => "" add_index: пользователи,: электронная почта ,: unique => true add_index: users,: reset_password_token,: unique => true end end –

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