質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

1回答

1710閲覧

Ruby on Rails Ajaxで非同期処理を行いたい

sugar821

総合スコア10

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2019/06/12 02:39

前提・実現したいこと

Ruby on RailsでAjaxを用いた処理を行いたい。
具体的にはtwitterのコメントのようにモーダルウィンドウを表示し
対象のIDに対してコメントできるようにしたい。

発生している問題・エラーメッセージ

Qiita
上記を参考にしたが、モーダルウィンドウを表示する事ができない。
new.js.erbを呼び出せていないと思われる。

ruby

1#パラメータを受け渡せるが、new.js.erbを呼んでくれない。 2= link_to "comment", new_review_path(task), remote:true

log

1#logger.debug paramsの結果 2{"controller"=>"reviews", "action"=>"new", "format"=>"1"} 3 4Rendering reviews/new.html.slim within layouts/application 5 Rendered reviews/new.html.slim within layouts/application (3.4ms) 6 User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id", 2], ["LIMIT", 1]] 7 Rendered shared/_header.html.erb (3.5ms) 8 Rendered shared/_flash.html.erb (1.0ms) 9Completed 200 OK in 116ms (Views: 100.6ms | ActiveRecord: 0.9ms)

該当のソースコード

new.html.slim

ruby

1#モーダル表示用 2div#comment.modal.fade tabindex="-1" role="dialog" aria-hidden="true" 3#リンク 4= link_to "comment", new_review_path(task),remote:true

new.js.erb

ruby

1$("#comment").html("<%= escape_javascript(render 'form') %>") 2$("#comment").modal("show")

_form.html.slim

ruby

1div.modal-dialog role="document" 2 div.modal-content 3 div.modal-header 4 h5.modal-title id="exampleModalLabel"モーダルのタイトル 5 button type="button" class="close" data-dismiss="modal" aria-label="閉じる" 6 span aria-hidden="true"&times; 7 div 8 div.modal-body 9 ボディ 10 div.modal-footer 11 button class="btn btn-secondary" data-dismiss="modal" 閉じる 12 button class="btn btn-primary" 変更を保存

route.rb

ruby

1Rails.application.routes.draw do 2 resources :reviews 3 resources :tasks do 4 resources :reviews 5 end 6end

試したこと

URLヘルパーメソッドを変更したがうまくいかない。

ruby

1#モーダルウィンドウの表示ができるが、コメント対象のパラメータを受け渡せない。 2= link_to "comment", new_review_path, remote:true

log

1#logger.debug paramsの結果 2{"controller"=>"reviews", "action"=>"new"} 3 4Rendering reviews/new.js.erb 5 Rendered reviews/_form.html.slim (3.3ms) 6 Rendered reviews/new.js.erb (6.1ms) 7Completed 200 OK in 16ms (Views: 10.8ms | ActiveRecord: 0.0ms)

補足情報(FW/ツールのバージョンなど)

Ruby2.6
rails5.2
bootstrap4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
URLヘルパーメソッドを間違えていました。

ruby

1#正 2= link_to "comment", new_task_review_path(task),remote:true 3#誤 4= link_to "comment", new_review_path(task),remote:true

投稿2019/06/12 04:33

sugar821

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問