teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文法の修正

2019/05/10 09:07

投稿

hattin
hattin

スコア18

title CHANGED
@@ -1,1 +1,1 @@
1
- Ajaxがリロードしないと機能しない。
1
+ 【至急】Ajaxがリロードしないと機能しない。
body CHANGED
@@ -5,6 +5,8 @@
5
5
  ActionView::Template::Error (undefined local variable or method `micropost' for #<#<Class:0x00000000051a4bb8>:0x00000000051d2888>
6
6
  Did you mean? micropost_url)
7
7
  ```
8
+ 上記のエラーは、create.js.erb,destroy.js.erbの両方に見られます。
9
+ _micropost.html.erb内でeach文を使用して、@microposts.each do |micropost|としているのですが、jsファイルにはこのmicropostが検知されず、このエラーが出てしまっているのでしょうか?
8
10
  **コード**
9
11
  ```ruby
10
12
  (favorites_controller.rb)

2

文法の修正

2019/05/10 09:07

投稿

hattin
hattin

スコア18

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,10 @@
1
1
  **現状**
2
2
  railsチュートリアルに沿って、アプリケーション開発をしています。いいね機能を搭載し、ajaxをつけてようとしているのですが、リロードしないと表示が変わりません。submitのボタンを押すと、その場では何も変化がないような挙動をし、リロードすると、いいね機能が実行され、画面にも変化が現れる状態です。以下に、関連していると思われるコードを載せておきます。ネット上にあるサイトを参考にして、turbolinksのgem,jsでの読み込みをコメントアウトしてあります。ほかに必要な情報があれば、手間をおかけしますがよろしくお願いします。読みづらいコードかもしれませんが、どうかよろしくお願いいたします。
3
+ **エラーコード**
4
+ ```ruby
5
+ ActionView::Template::Error (undefined local variable or method `micropost' for #<#<Class:0x00000000051a4bb8>:0x00000000051d2888>
6
+ Did you mean? micropost_url)
7
+ ```
3
8
  **コード**
4
9
  ```ruby
5
10
  (favorites_controller.rb)

1

文法の修正

2019/05/10 07:58

投稿

hattin
hattin

スコア18

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,28 @@
1
1
  **現状**
2
- railsチュートリアルに沿って、アプリケーション開発をしています。いいね機能を搭載し、ajaxをつけてようとしているのですが、リロードしないと表示が変わりません。submitのボタンを押すと、その場では何も変化がないような挙動をし、リロードすると、いいね機能が実行され、画面にも変化が現れる状態です。以下に、関連していると思われるコードを載せておきます。ネット上にあるサイトを参考にして、turbolinksのgem,jsでの読み込みをコメントアウトしてあります。読みづらいコードかもしれませんが、どうかよろしくお願いいたします。
2
+ railsチュートリアルに沿って、アプリケーション開発をしています。いいね機能を搭載し、ajaxをつけてようとしているのですが、リロードしないと表示が変わりません。submitのボタンを押すと、その場では何も変化がないような挙動をし、リロードすると、いいね機能が実行され、画面にも変化が現れる状態です。以下に、関連していると思われるコードを載せておきます。ネット上にあるサイトを参考にして、turbolinksのgem,jsでの読み込みをコメントアウトしてあります。ほかに必要な情報があれば、手間をおかけしますがよろしくお願いします。読みづらいコードかもしれませんが、どうかよろしくお願いいたします。
3
3
  **コード**
4
4
  ```ruby
5
+ (favorites_controller.rb)
6
+
7
+ def create
8
+ @micropost = Micropost.find_by(id: params[:micropost_id])
9
+ current_user.like(@micropost)
10
+ respond_to do |format|
11
+ format.html { redirect_back(fallback_location: root_path) }
12
+ format.js
13
+ end
14
+ end
15
+
16
+ def destroy
17
+ @micropost = Micropost.find(params[:micropost_id])
18
+ current_user.unlike(@micropost)
19
+ respond_to do |format|
20
+ format.html { redirect_back(fallback_location: root_path) }
21
+ format.js
22
+ end
23
+ end
24
+ ```
25
+ ```ruby
5
26
  (favorites/_like_button.html.erb)
6
27
 
7
28
  <%= form_for(current_user.favorites.build, remote: true) do |f| %>