I have a Rails view which I would like to receive a list of ids from the controller and make a photo box for each ID. My current code receives the list and creates a box for each one perfectly fine, but any time I try to output or display the variable it acts like the variable is empty.
Controller
def index
@photos = Photo.all
@photo_ids = Feed.find(4).approved_contents
@ids = @photos.ids.as_json
Rails.logger.info(Feed.find(4).approved_contents.ids.as_json)
end
Template
<p id="notice"><%= notice %></p>
<h1>Listing Photos</h1>
<br>
<div class="row">
<% @photos.each do |photo| %>
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
<% photo.inspect %>
</p>
</div>
</div>
</div>
<% end %>
</div>
<% @photos.length %>
<%= link_to 'New Photo', new_photo_path %>
Output HTML
<!DOCTYPE html>
<html>
<head>
<title>Concerto picvote</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
<link rel="stylesheet" media="all" href="/stylesheets/concerto_picvote/application.css" />
<script src="/javascripts/concerto_picvote/application.js"></script>
</head>
<body>
<p id="notice"></p>
<h1>Listing Photos</h1>
<br>
<div class="row">
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
<div class="col-sm">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="/content/46/display" alt="Card image cap">
<div class="card-body">
<p class="card-text">
</p>
</div>
</div>
</div>
</div>
<a href="/vote/photos/new">New Photo</a>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script>
</body>
</html>
Thanks!