2013-12-04 2 views
0

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

My view for myfeed.html.erb is empty, потому что я не уверен, что в него положить (или если что-то вообще присутствует). Майкл Хартл, кажется, ничего не добавляет к домашней странице в своем учебнике.

Вот мой PagesController:

class PagesController < ApplicationController 
    def home 
    end 

    def about 
    end 

    def myfeed 
    if signed_in? 
     @thing = current_user.things.build 
     @feed_items = current_user.feed.paginate(page: params[:page]) 
    end 
    end 
end 

Вот моя вещь модель:

class Thing < ActiveRecord::Base 
    belongs_to :user 

    default_scope -> { order('created_at DESC') } 

    has_attached_file :image, :styles => { :large => '500x500>', :medium => '300x300>', :thumb => '100x100>' } 

    validates :image, presence: true 
    validates :title, presence: true 

    # Returns microposts from the users being followed by the given user. 
    def self.from_users_followed_by(user) 
    followed_user_ids = "SELECT followed_id FROM relationships 
         WHERE follower_id = :user_id" 
    where("user_id IN (#{followed_user_ids}) OR user_id = :user_id", 
      user_id: user.id) 
    end 
end 

Вот способ подачи моей модели пользователя:

def feed 
    Thing.from_users_followed_by(self) 
end 

EDIT

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

Итак, я решил, что, по крайней мере, я мог бы поставить <%= @feed_items %>, на мой взгляд, не так ли? Когда я делаю, я получаю этот выход на моей странице: #<ActiveRecord::Relation::ActiveRecord_Relation_Thing:0x00000108ad3f50>

+2

Не пытаясь быть рывками, но ваши детали подачи не показываются, так как вы сказали, ваш 'myfeed .html.erb' пуст. Используйте '@ feed_items' в представлении и покажите им, как вы хотите. Если ничего не будет сделано, ничего не появится. –

+1

Ты не отрывистый. Вы дали законный ответ на мой вопрос. Я еще раз уточню свой вопрос. @NickVeys –

ответ

2

Пришлось перебрать примерно так:

<div id="things" class="transitions-enabled"> 
    <% @feed_items.each do |thing| %> 
    <div class='panel panel default'> 
     <div class="box"> 
     <%= link_to image_tag(thing.image.url(:medium)), thing %> 
     <div class='panel-body'> 
     <% if thing.link.blank? %> 
     <strong><%= thing.title %></strong> 
     <% else %> 
     <strong><%= link_to thing.title, "http://#{thing.link}"%></strong> 
     <% end %> 

     <p><%= thing.description %></p> 
     By <%= link_to thing.user.username, user_path(thing.user) %> 

     <% if thing.user == current_user %> 
      <%= link_to edit_thing_path(thing) do %> 
      <span class='glyphicon glyphicon-edit'></span> 
     <% end %> 
     <%= link_to thing_path(thing), method: :delete, data: { confirm: 'Are you sure?' } do %> 
      <span class='glyphicon glyphicon-trash'></span> 
     <% end %> 
     </div> 
     <% end %> 
     </div> 
     </div> 
    <% end %> 
</div> 
+1

не забудьте принять ответ, даже если он ваш собственный :) – CDub

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