これを実装するための最良の方法を探しています。現在、ユーザー用の「表示」ページがあります。これは、ユーザーのすべての写真を表示します。
def show
@user = User.find(params[:id])
@pictrues = @user.pictures
end
そのページには、さまざまなタブがあります。ユーザーがこれらのタブの1つをクリックすると、ajax呼び出しによってビューがレンダリングされます...特に、以前はすべてのユーザーの写真を表示していたパーシャル(および統計用の追加のパーシャル)が更新されます。「コメントを表示」の例では、ユーザーがコメントしたすべての写真でパーシャルを更新します。
def show_comments
@user = User.find(params[:id])
@pictures = @user.picture_comments.map{ |p| p.picture }.uniq
respond_to do |format|
format.html
format.js
end
end
show_comments.js.erbファイルは次のようになります。
$("#user_content_container").html("<%= escape_javascript render(partial: 'shared/pictures', pictures: @pictures) %>");
$("div.user_header").html("<h4>Comments</h4><br/>");
$("#stat_container").html("<%= escape_javascript render(partial: 'shared/comment_stats', pictures: @pictures) %>");
私がやりたいのは、ページの現在の機能を維持することです。ただし、ajaxを介してレンダリングされるビューに直接リンクすることもできます。たとえば、[コメント]タブをクリックしたときのように、ユーザーの[表示]ページに直接移動する別のページにリンクを設定します。
私にはいくつかのアイデアがありますが、これを行うための「最もクリーンな」方法が何であるかはわかりません。さらに説明が必要な場合はお知らせください。b/cこれを実装するための最良の方法を見つけているので、正直に言って、この質問を表現するのに苦労しています。