問題は、previous_modalメソッドが、@user前の写真ではなく、データベース内の前の写真を返していることです。ユーザーの前の写真を取得するにはどうすればよいですか?
たとえば、@userにIDが10,9,8,7,6,1の写真があり、写真ID 6のモーダルを開き、前のをクリックすると、hrefが1ではなく5に設定されます。あなたのprevious_modal方法で
UsersController
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
users/show.html.erb
<% @photos.in_groups_of(3, false).each do |group| %>
<% group.each do |photo| %>
...
<div class="modal" id=<%="#{photo.id}"%> tabindex="-1" role="dialog">
...
<a class="previouslink" data-dismiss="modal" data-toggle="modal" href=<%="#"+"#{photo.previous_modal.id}"%>>
...
class Photo
def previous_modal
if self.class.approved.where("id < ?", id).last == nil
return self
else
return self.class.approved.where("id < ?", id).last
end
end
をこれは私に私のコードと同じ結果を与えています。 '@ user'の前の写真ではなく、データベースの前の写真を私に渡しています。 –
編集メモ、plsを見てください! –
混乱して申し訳ありません。配列はありません。私はちょうどユーザーが写真をアップロードしていて、それらの写真はそのIDを持っていると言っていました。私はそれを解決したと信じています。助けてくれてありがとう、私はまだあなたの答えからいくつかを学んだ。問題の言い訳に申し訳ありません。 –