rails5.2.3
rails-ujsとform_withでAjaxを用いた掲示板機能を作成しております。
また画像についてはActiveStorageを使用しております。
簡単なアプリ仕様の説明としては、
・client(依頼人)はwork(仕事)を作成できて、user(応募者)がその仕事に応募することができます。その各々の仕事のページの中で応募者と依頼人は互いに仕事に関するコメントをすることができるというものです。
そして本題ですが質問のようにその仕事ページ内でAjaxを用いた非同期の掲示板投稿をした際に既に登録されている投稿者の画像やハンドルネームを取得、表示したいです。
現状はコメントのみしか表示できておらず以下のようなコードになっております。
#コメント作成 json形式でビューに渡す def create @comment = Comment.new(params_comment) @comment.save! #コメントのみでなくコメント作成者の画像やハンドルネームを渡したい render :json => @comment.comment end def params_comment params.require(:t_workcomment).permit(:work_id, :user_account_id, :client_account_id, :comment) end
//ajaxでviewに投稿した内容を反映させる function set_ajax() { { $('#ajax_sample').on('ajax:success', function(event) { data = event.detail[0]; $('#comment_form').val(''); $('#comments').append('<li>' + data + '</li>'); }); } } $(document).on('turbolinks:load', set_ajax);
<!-- view --> <div class="text-center my-3"> <div id="ajax_response"> <p class="h5 subtitle" id="comment">掲示板</p> <ul id="comments"> <% @comment.each do |com| %> <li> <%= com.comment%> <%= com.created_at%> </li> <% end %> </ul> </div> <p class="h5 subtitle">フォーム</p> <div class="" id="ajax_sample"> . .<!-- form省略 --> . </div>
ストロングパラメーターとしてわたってきているparams_commentには正規化してリレーションされている:user_account_id, :client_account_id以外の情報は入っておりません。
render :json
のハッシュに@commentに紐づいた依頼者もしくは応募者のNameとActiveStorageのプロフィール画像を詰めて、jquery(rails-ujs)に渡したいです。
また渡ってきたjsonパラメーターをどのように処理すればよいかを知りたいです。
色々調べたのですがよいリファレンスが見つからず。。。
お手数をおかけして申し訳ございませんがよろしくお願い致します。
あなたの回答
tips
プレビュー