2016-12-03 27 views
1

Ich habe eine Entwickler-Benutzer-Tabelle mit Trägerwelle und einer Avatar-Spalte in meiner Datenbank. Wenn die Website ausgeführt wird, sagt es "nicht definierte Methode` AvatarsRails association

<% @posts.each do |post| %> 
     <div class="col-xs-12 col-md-6 col-lg-4 item" > 
     <div class="timeline-block"> 
      <div class="panel panel-default"> 
      <div class="panel-heading"> 
       <div class="media"> 
       <div class="media-left"> 
        <a href=""> 
        <%= image_tag post.user.avatar.url, class: 'media-object' %> 
        <img src="http://placehold.it/50x50" class="media-object"> 
        </a> 
       </div> 
       <div class="media-body"> 
        <a href="#" class="pull-right text-muted"><i class="icon-reply-all-fill fa fa-2x "></i></a> 
        <a href=""><%= name post %></a> 
        <span><%= (post.created_at).to_formatted_s(:short) %></span> 
       </div> 
       </div> 
      </div> 

      <div class="panel-body"> 
       <p><%= post.user_post %></p> 
      </div> 

      <div class="view-all-comments"> 
       <a href="#"> 
       <i class="fa fa-comments-o"></i> View all 
       </a> 
       <span>10 comments</span> 
      </div> 
      </div> 
     </div> 
     </div> 
    <% end %> 

Modell

class User < ApplicationRecord 
    mount_uploaders :avatars, AvatarUploader 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
    #attr_accessor :email, :password, :remember_me, :avatar, :avatar_cache, :remove_avatar 
    mount_uploader :avatar, AvatarUploader 
end 

keine Ahnung, was los ist. Bei anderen Anwendungen habe ich die Verbände zum Laufen gebracht.

+0

Können Sie uns zeigen Sie den Code aus dem 'User' Modell? –

+0

ja Ich habe das Benutzermodell auf die Frage gestellt – Tuler

+0

Haben Sie Ihren Anwendungsserver neu gestartet? – dp7

Antwort

0

Sie haben mount_uploader in Ihrem User Modell zweimal.

Haben Sie auch den folgenden Code ausgeführt?

rails g migration add_avatar_to_users avatar:string 
rake db:migrate 

Der normale Grund für einen ‚nicht definierte Methode‘ Fehler auf einem aktiven Rekord Modell bekommen ist, dass die DB Spalten nicht da sind, so dass ich vermute, dass das Problem ist.

Wenn nicht, bitte posten Sie die genaue Fehlermeldung und Stack-Trace, wie Sie es auf dem Bildschirm sehen, zusammen mit dem Inhalt Ihrer Migrationsdatei und der AvatarUploader.

Edit:

Sie sind die aktiven Rekord Verbände in Ihren Modellen fehlt:

class User < ApplicationRecord 
    has_many :posts 
end 

class Post < ApplicationRecord 
    belongs_to :user 
end 
+0

Die Spalte ist da – Tuler

+0

OK. Was ist in dem 'AvatarUploader'? –

+0

AvatarUploader ist eine generierte Klasse von Trägerwelle – Tuler

Verwandte Themen