2
編集私は、以前のクリックを試みたが、それはまだページ付けされていなかったときに何が起こる以前と次のデータトグルのみ、既にページ分割されている写真では動作し
? Herokuにはエラーやメッセージはありません。それは何かを返しますか?私の前の方法は、前のリンクがあれば、確実にもっと写真があるということです。
私のモーダルの前と次のボタンは、改ページされた写真の最後まで表示されます。たとえば、per_pageの9枚の写真があります。私が写真の最初のページにいて、最後の写真の前をクリックすると、10番目の写真は開きません。リンクは正しいですが、モーダルはコントローラによってまだページが設定されていないため写真を開きません。
show.html.erb
<% @photos.in_groups_of(3, false).each do |group| %>
<div class="row instagram">
<% group.each do |photo| %>
<a data-toggle="modal" href=<%="#"+"#{photo.id}"%>>
...
<div class="modal" id=<%="#{photo.id}"%> tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
...
<a class="modaldirection" data-dismiss="modal" data-toggle="modal" href=<%="#"+"#{photo.previous_modal.id}"%>>
クラス写真<はActiveRecord ::ベース
def previous_modal
if self.class.where("id < ?", id).last == nil
return self
else
return self.class.where("id < ?", id).last
end
end
クラスがUserController
def show
@user = User.find(params[:id])
@photos = @user.photos.approved.order('created_at desc').paginate(page: params[:page], per_page: 9)
respond_to do |format|
format.html
format.js
end
end
これは、すべての '@写真 'を表示するギャラリーになるはずですか?なぜ3つのグループを作るのですか?通常、ギャラリーを作成するときに、サーバー上ですべての写真のリストを出力し、JavaScriptを使用してインタラクティブギャラリーにします。 – mb21
@ mb21それ以外の場合は、col-4としてページ付けする必要があります。私はこのコードをしばらく前に書きましたが、それには理由がありました。私はそれが写真に改ページするためにレールを使用している場合、それが質問に影響するとは思わない。あなたはJsでURL写真のフロントエンドをすべて行うことを提案していますか? –