Actualmente tengo un modelo de comentarios que se publica debajo de un micropost y ambos se muestran en la misma página. El problema es que ambos se muestran en la misma página y ambos están paginados y estoy tratando de aplicar el enfoque de Facebook a la microposición. Aquí está el problema a continuación:Problema con los enlaces de la página will_paginate
Los enlaces para ambas paginación se convierten en este href="https://stackoverflow.com/users/2?page=2"
en lugar de href="https://stackoverflow.com/users/2/micropost?page=2"
o href="https://stackoverflow.com/users/2/comment?page=2"
. No estoy seguro de cómo resolver este problema. Aquí hay algunos de mis códigos. ¡Todas las sugerencias son muy apreciadas!
micropost representar HTML
<table class="microposts">
<% if microposts.any? %>
<%= render microposts %>
<%= will_paginate microposts, :page_links => false %>
<% else %>
<div class="EmptyContainer"><span class='Empty'>Add a thread!</span></div>
<% end %>
</table>
comentario Sección HTML
<div id='CommentContainer-<%= micropost.id%>' class='CommentContainer Condensed2'>
<div class='Comment'>
<%= render :partial => "comments/form", :locals => { :micropost => micropost } %>
</div>
<div id='comments'>
<% comments = micropost.comments.paginate(:per_page => 5, :page => params[:page]) %>
<%= render comments %>
<%= will_paginate comments, :class =>"pagination" %>
</div>
</div>
del usuario del controlador para el espectáculo Página
def show
@user = User.find(params[:id])
@comment = Comment.find(params[:id])
@micropost = Micropost.new
@comment = Comment.new
@comment = @micropost.comments.build(params[:comment])
@comments = @micropost.comments.paginate(:page => params[:page], :per_page => 5)
@microposts = @user.microposts.order('created_at DESC').paginate(:per_page => 10, :page => params[:page])
respond_to do |format|
format.html
format.js
end
end
Supongo que 'colección' ¿Lo reemplazo por lo que sea que deba ser paginado? Porque si no recibo un error indefinido – Kellogs
, ¿también cómo agregaría el id del usuario en base_link_url? Debido a que estos dos enlaces no funcionan ': base_link_url =>"/users/<%= user.id%> ",' ': base_link_url =>"/users /: id ",' – Kellogs
Sí, sustituya la 'colección' con cualquier otra variable que contenga elementos para ser paginado En cuanto a usar: opción base_link_url - no pase la cadena con algunos marcadores de posición como lo hace en routes.rb - simplemente pase el resultado del método url helper. Por ejemplo, si tiene una ruta con nombre "user_micropost" que está traducida a (por ejemplo) '/ user/2/micropost', entonces' user_micropost_path (: id => 2) 'sería la opción que necesita pasar como': base_link_url '. Todos los enlaces renderizados obtendrían url como:/user/2/micropost? Page = 1/user/2/micropost? Page = 2 y así sucesivamente. – WTK