Я только что закончил учебник One Month Rails, и это сайт, который я создал: https://warwicktri.herokuapp.com/. Теперь я пытаюсь вытащить фид Instagram на домашнюю страницу, но я получаю индекс NoMethodError в столбцах # на моем localhost.NoMethodError при внедрении Instagram Gem для сайта Ruby on Rails
undefined method `each' for nil:NilClass
<div>
<% @instagram.each do |instagram| %>
<%= image_tag instagram.images.first.last.url %>
<% end %>
</div>
Я думаю, что это означает, что @instagram не объявляется должным образом, но я не знаю, где я ошибся.
Это код в моем pins_controller.rb:
def index
@pins = Pin.all.order("created_at DESC").paginate(:page => params[:page], :per_page => 5)
respond_with(@pins)
@instagram = Instagram.user_recent_media("264208635")
respond_with(@instagram)
end
Я также попытался положить @instagram в другой контроллер сам по себе вместо этого, но я все еще получаю ту же ошибку:
class InstagramController < ApplicationController
def index
@instagram = Instagram.user_recent_media("264208635")
respond_with(@instagram)
end
end
Как я должен объявить @instagram в моем коде?
Update 1: Мой код для просмотра (index.html.erb):
<div id="pins" class="transitions-enabled">
<% @pins.each do |pin| %>
<div class="box panel panel-default">
<%= link_to image_tag(pin.image.url(:medium)), pin %>
<div class="panel-body">
<p><%= pin.description %></p>
<p><strong><%= pin.user.name if pin.user %></strong></p>
<% if pin.user == current_user %>
<div class="actions">
<%= link_to edit_pin_path(pin) do %>
<span class="glyphicon glyphicon-edit" aria-hidden="true"></span> Edit
<% end %>
<%= link_to pin, method: :delete, data: { confirm: 'Are you sure?' } do %>
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Delete
<% end %>
</div>
<% end %>
</div>
</div>
<% end %>
</div>
<div class="center">
<%= will_paginate @posts, renderer: BootstrapPagination::Rails %>
</div>
<div>
<% @instagram.each do |instagram| %>
<%= image_tag instagram.images.first.last.url %>
<% end %>
</div>
Кажется, что вы визуализируете представление, которое не принадлежит к действию, в вашем случае, которое является «индексом». –
Какова ваша позиция? –
run 'Instagram.user_recent_media (" 264208635 ")' в консоли rails может быть, это return 'nil' –