De hecho, estoy trabajando en una aplicación web para transmitir música.

Creé un álbum y un modelo de pista.

Una pista pertenece_ a un álbum. Un álbum tiene_muchas pistas

Tengo problemas con la vista de mi programa.

Tengo un índice para mostrar todos los álbumes y las pistas que entran.

<table>   <thead>
    <tr>
      <td>#</td>
      <td>Title</td>
      <td>released_at</td>
    </tr>   </thead>   <tbody>
    <% @albums.each do |album|%>
    <td><%= link_to "show", albums_path%></td>
    <tr>
      <td><%= album.id%></td>
      <td><%= album.title %></td>
      <td><%= sexy_date(album.released_at)%></td>
      <td><%= time_ago_in_words(album.released_at)%></td>
      <td><%= album.tracks_count%></td>
      <% album.tracks.each do |track|%>
      <td>
        <%= track.title%>
      </td>
    </tr>
    <% end %>
  <% end %>
</tbody>

Me gustaría hacer clic en un álbum específico con mi link_to

<td><%= link_to "show", albums_path%></td>

Pero el hecho es que este código hace que la URL localhost: 3000 / álbumes y no localhost: 3000 / album / 1 que estoy buscando.

Entiendo que mi enlace no es correcto, pero no puedo encontrar qué codificar en su lugar.

Aquí está mi Albums_controller

 class AlbumsController < ApplicationController   
 # before_action :authenticate_user!   # before_action :set_track, only: [:show, :edit, :update, :destroy] 



  def index
     @albums = Album.all
  end

   def show   end

   def create
     @album = Album.new(album_params)   end

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

     def album_params
       params.require(:album).permit(:title)
     end   end

Gracias por ayudar :)

1
Che 17 ene. 2017 a las 00:53

1 respuesta

La mejor respuesta

Podrá vincular a un álbum específico haciendo lo siguiente:

<td><%= link_to "show", album_path(album)%></td>

Aquí hay información sobre cómo usar link_to: http: // apidock. com / rails / ActionView / Helpers / UrlHelper / link_to

1
Dawcars 17 ene. 2017 a las 01:02
Oh gracias ! ¡Lo voy a leer! Si escribo su código, Rails me dice que escriba album_path (album) porque no conoce el método album_path. Entonces todo está funcionando, la única curiosidad, es que cuando hago clic en mostrar. La URL es "localhost: 3000 / albums.3" y no localhost: 3000 / álbumes / 3" ¿bastante extraño?
 – 
Che
17 ene. 2017 a las 01:06
¿Cómo ha definido el álbum en su archivo de rutas?
 – 
Dawcars
17 ene. 2017 a las 01:31
Tengo una raíz para: 'índice de álbumes #' y un "recurso: álbumes"
 – 
Che
17 ene. 2017 a las 01:34
Intente cambiar resource :albums a resources :albums y luego album_path(album) debería funcionar
 – 
Dawcars
17 ene. 2017 a las 01:38
1
resource y resources definen rutas diferentes. Consulte el siguiente enlace para obtener más información: stackoverflow. com / questions / 9194767 /…
 – 
Dawcars
17 ene. 2017 a las 01:39