ajaxを使って非同期でビューを更新したいと思っております。
シンプルに更新したい部分をDOM操作して更新がベストだと思っているのですが、対象がrailsの処理を含んでおり、再現できないため、
サーバー側でpartialを取得してフロントに返したいと思っております。
ruby
1status = 200 2view = render partial: 'child_show.html.haml', locals: { child: Child.find(params[:relative_id]) } 3 body = { 4 body: @trust, 5 view: view 6 } 7respond_to do |format| 8 format.json { render status: status, json: { body: body } } 9end
上記で行けるかな?と思ったのですが、
ActionController::RespondToMismatchError - respond_to was called multiple times and matched with conflicting formats in this action. Please note that you may only call respond_to and match on a single format per action.:
と怒られてしまいます。
調べてみるとformatが
#<ActionController::MimeResponds::Collector:0x00007ff96939e328
という形式のようで即した形式で変数を入れ込む必要がありそうなのですが、
どのようにpartialをフロントに渡せますでしょうか?
ruby
1render partial: 'child_show.html.haml', locals: { child: Child.find(params[:relative_id]) }
これのみを戻り値とすれば渡せるのですが、他のパラメータも渡したいため断念しました。。。。
あなたの回答
tips
プレビュー