2016-06-27 3 views
0

Внутри действия show Я пытаюсь установить ссылку на действие редактирования контроллера альбома, но я продолжаю получать сообщение об ошибке ActiveRecord: не удалось найти альбом с идентификатором 'id' =: id [ ГДЕ "альбомы" "user_id" =]ActiveRecord :: RecordNotFound в AlbumsController # edit

контроллер Альбом:.?

def edit 
    @album = current_user.albums.find(params[:id]) 
end 

def update 
    @album = current_user.albums.find(params[:id]) 
    if @album.update(album_params) 
     redirect_to '/albums/:id' 
    else 
     render '/albums/edit' 
    end 
end 

def show 
    @album = current_user.albums.find(params[:id]) 
    @photos = @album.photos 
    @interests = current_user.interests 
end 

Вид:

<% if @album.description.nil? %> 
     <div class="description" id="new"><%= link_to 'Add Description', "/albums/:id/edit", :style => "text-decoration:none;" %></div> 
    <% else %> 
     <div class="description"><%= @album.description %></div> 
    <% end %> 

ответ

0

Вы должны указать путь редактирования edit_album_path для @album:

<% if @album.description.nil? %> 
    <div class="description" id="new"><%= link_to 'Add Description', edit_album_path(@album), :style => "text-decoration:none;" %></div> 
<% else %> 
    <div class="description"><%= @album.description %></div> 
<% end %> 

Предполагая, что вы определили маршрут для редактирования альбома пути в routes.rb или вы можете просто иметь ресурс альбома в routes.rb так что создало бы пути, которые необходимы для Вас, чтобы построить действия CRUD:

resources :albums 

Вы можете проверить свои маршруты, используя команду rake routes | grep album в вашем пути к приложению.

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