Rails 3 нет маршрутов соответствует (вложенные ресурсы?) - PullRequest
1 голос
/ 09 января 2012

У меня есть связь один ко многим в рельсах, где пользователь has_many: альбомы и альбомы принадлежит_ пользователю: пользователь. Все отлично работает, но страница указателя. Всякий раз, когда я пытаюсь перейти на страницу индекса, я получаю сообщение об ошибке «Нет маршрутов». Есть ли что-то, что я делаю не так? Все мои страницы работают, кроме индексной страницы, на которой показаны все альбомы.

* Вот ошибка (Массив со всей информацией, я усек большую ее часть)

No route matches {:action=>"show", :controller=>"albums", :user_id=>[#<User id: 3}

routes.rb

  resources :users do
    resources :albums
  end

albums_controller.rb

class AlbumsController < ApplicationController

  def index
    @albums = Album.all
    @user = User.all
  end

  def show
    @album = Album.find(params[:id])
  end

  def new
    @album = Album.new
    @user = User.new
  end

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

  def create
    @album = current_user.albums.create(params[:album])

     if @album.save
       redirect_to user_albums_path, :notice => 'Album was successfully created.' 
     else
       render :action => "new"
     end
  end

  def update
    @album = Album.find(params[:id])

      if @album.update_attributes(params[:album])
        redirect_to user_album_path(@album), :notice => 'Album was successfully updated.' 
      else
      render :action => "new"
    end
  end

  def destroy
    @album = Album.find(params[:id])
    @album.destroy
  end
end

Форма для альбомов

<%= form_for ([:user, @album]) , :html => {:multipart => true} do |f| %>

Альбомы index.html.erb

<% for albums in @albums %>
 <tr>
   <td><%= albums.title %></td>
   <td><%= albums.description %></td>
   <td><%= albums.user_id %></td>
   <td><%= link_to 'Show', user_album_path(@user, albums) %></td>
   <td><%= link_to 'Edit', edit_user_album_path(@user, albums) %></td>
   <td><%= link_to 'Destroy', user_album_path(@user, albums), confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>


1 Ответ

1 голос
/ 17 января 2012

Да, и я все понял, я не звонил пользователю, прежде чем указывать альбомы, которые в большинстве случаев были @user = User.find(params[:user_id])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...