Я пытаюсь отобразить все альбомы на странице # указателей альбомов, но в контроллере альбомов появляется ошибка «не удается найти альбом без идентификатора». Я понимаю, что проблема заключается в том, что нет никаких параметров, но я несколько раз использовал в моем приложении метод find с параметрами [: id] и до сих пор не сталкивался с этой проблемой.
Для справки , Альбомы имеют много обзоров и много пользователей через обзоры. У пользователей много Обзоров и много Альбомов через Обзоры.
Я еще не построил свой контроллер Обзоров, так что это не связано.
Вот ошибка:
ActiveRecord::RecordNotFound in AlbumsController#index
Couldn't find Album without an ID
Extracted source (around line #40):
38
39
40
41
42
43
def set_album
@album = Album.find(params[:id])
end
def album_params
Rails.root: /Users/melc/review_project
Application Trace | Framework Trace | Full Trace
app/controllers/albums_controller.rb:40:in `set_album'
Request
Parameters:
None
Вот мой контроллер Albums:
class AlbumsController < ApplicationController
before_action :set_album, only: [:index, :show, :edit, :update]
def index
@albums = Album.all
@current_user
end
def show
end
def new
@album = Album.new
end
def create
@album = Album.new(album_params)
if @album.save
redirect_to album_path(@album)
else
render :new
end
end
def edit
end
def update
if @album.update(album_params)
redirect_to album_path(@album), notice: "Your album has been updated."
else
render 'edit'
end
end
private
def set_album
@album = Album.find(params[:id])
end
def album_params
params.require(:album).permit(:artist, :title, :avatar)
end
end
Вот мои альбомы # индексный просмотр:
<h2>All Albums</h2>
<br>
<br>
<% if @album.avatar.attached? %>
<image src="<%=(url_for(@album.avatar))%>%" style="width:350px;height:350px;">
<% end %>
<br>
<%= @album.artist %> -
<%= @album.title %>
<br>
<%= link_to "Edit Album", edit_album_path %><br><br>
<%= link_to "Upload a New Album", new_album_path %>
Вот файл route.rb:
Rails.application.routes.draw do
get '/signup' => 'users#new', as: 'signup'
post '/signup' => 'users#create'
get '/signin' => 'sessions#new'
post '/signin' => 'sessions#create'
get '/signout' => 'sessions#destroy'
resources :albums do
resources :reviews
end
resources :users
root to: "albums#index"
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end