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

質問編集履歴

4

routingについても記載しました

2018/06/13 22:42

投稿

happy_teeth
happy_teeth

スコア42

title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,9 @@
6
6
 
7
7
  Viewからコントローラへlink_to メソッドで移動して保存したいです。
8
8
  ただ表示しているのは、まだDBに保存していないAPIから取得したデータです。
9
- そこで保存処理がわからず困っていま
9
+ そこでコントローラでへparamsで値を渡せていません
10
10
 
11
+
11
12
  ビューは
12
13
  ```Rails
13
14
  <%= @books.each do |book| %>
@@ -21,9 +22,9 @@
21
22
  </div>
22
23
  <% end %>
23
24
  ```
24
- このように記載しています
25
+ このようにlonk_toメソッドで、写真をクリックすると同時に、コントローラへ値を渡たいと考えています
25
26
  ビューでは、
26
- APIで種痘したデータも表示できています。
27
+ APIで取得したデータも表示できています。
27
28
 
28
29
 
29
30
  GoogleDeveloper ツールで検証すると
@@ -36,27 +37,87 @@
36
37
 
37
38
  ### 発生している問題・エラーメッセージ
38
39
  ![イメージ説明](c6a16802225449afacfa7cd0d1340fce.png)
39
- ```
40
+
40
- param is missing or the value is empty: book
41
- ```
42
41
  コントローラは
42
+ ```Rails
43
+ def index
44
+ @books = GoogleBooks.search(params[:search],{:count => 20})
45
+ end
43
46
 
47
+ # GET /books/1
48
+ # GET /books/1.json
44
- ```Rails
49
+ def show
50
+
51
+ end
52
+
45
53
  # GET /books/new
46
54
  def new
47
55
  @book = Book.new(book_params)
48
56
  end
49
57
 
58
+ # GET /books/1/edit
59
+ def edit
50
- ```
60
+ end
51
- ストロングパラメータで
52
- ```Rails
53
61
 
62
+ # POST /books
63
+ # POST /books.json
64
+ def create
65
+ @book = Book.new(book_params)
66
+ binding.pry #pryのgemを入れてみましたが、ここはデバッグ実行でも通過しませんでした。
67
+ respond_to do |format|
54
- def book_params
68
+ if @book.save
69
+ format.html { redirect_to @book, notice: 'Book was successfully created.' }
70
+ format.json { render :show, status: :created, location: @book }
71
+ else
72
+ format.html { render :new }
55
- params.require(:book).permit(:title, :author, :publish, :published)
73
+ format.json { render json: @book.errors, status: :unprocessable_entity }
74
+ end
56
75
  end
76
+ end
77
+ ```
57
78
 
58
- ```
59
79
  のように記載しています。
80
+ ルーティングは
81
+ > Prefix Verb URI Pattern Controller#Action
82
+ > books GET /books(.:format) books#index
83
+ > POST /books(.:format) books#create
84
+ > new_book GET /books/new(.:format) books#new
85
+ > edit_book GET /books/:id/edit(.:format) books#edit
86
+ > book GET /books/:id(.:format) books#show
87
+ > PATCH /books/:id(.:format) books#update
88
+ > PUT /books/:id(.:format) books#update
89
+ > DELETE /books/:id(.:format) books#destroy
90
+ > posts GET /posts(.:format) posts#index
91
+ > POST /posts(.:format) posts#create
92
+ > new_post GET /posts/new(.:format) posts#new
93
+ > edit_post GET /posts/:id/edit(.:format) posts#edit
94
+ > post GET /posts/:id(.:format) posts#show
95
+ > PATCH /posts/:id(.:format) posts#update
96
+ > PUT /posts/:id(.:format) posts#update
97
+ > DELETE /posts/:id(.:format) posts#destroy
98
+ > users GET /users(.:format) users#index
99
+ > POST /users(.:format) users#create
100
+ > new_user GET /users/new(.:format) users#new
101
+ > edit_user GET /users/:id/edit(.:format) users#edit
102
+ > user GET /users/:id(.:format) users#show
103
+ > PATCH /users/:id(.:format) users#update
104
+ > PUT /users/:id(.:format) users#update
105
+ > DELETE /users/:id(.:format) users#destroy
106
+ > GET / books#index
107
+ > about GET /about(.:format) home#about
108
+ > login GET /login(.:format) users#login
109
+ > users_create POST /users/create(.:format) users#create
110
+ > rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show
111
+ > rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
112
+ > rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
113
+ > update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
114
+ > rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
60
- permit以下はDBのカラムにあるのは間違いないのですが、それ以前にparamsが取得できていません。
115
+ > ec2-user:~/environment/google_books_API/book_app (master) $
116
+
117
+ の様になっています。
118
+
119
+
61
- ビュから取得できていません。
120
+ エラによると、paramsが取得できていません。
121
+
62
- この場合、どうすればビューからコントローラにを渡せますか?
122
+ この場合、どうすればビューからコントローラに、選択したオブジェクトを渡せますか?
123
+ 目的はDBに保存することです。手法が間違っていたら他の方法での実装方法を教えていただけますか?

3

回答が得られなかったので、英語のエラーを日本語に修正しました

2018/06/13 22:41

投稿

happy_teeth
happy_teeth

スコア42

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails ActionController::ParameterMissingエラーが出ます。
1
+ Rails ビューからコントローラへparamsで値を渡せません。:ParameterMissingエラーが出ます。
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
 
4
- RailsでGoogleBook APIを取得して、表示するシステム作ってす。
4
+ RailsでGoogleBook APIを取得して、表示をしたす。
5
5
 
6
6
 
7
7
  Viewからコントローラへlink_to メソッドで移動して保存したいです。

2

画像を削除しました。

2018/06/13 22:22

投稿

happy_teeth
happy_teeth

スコア42

title CHANGED
File without changes
body CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
 
4
4
  RailsでGoogleBook APIを取得して、表示するシステムを作っています。
5
- Railsは初心者です。
6
5
 
6
+
7
7
  Viewからコントローラへlink_to メソッドで移動して保存したいです。
8
8
  ただ表示しているのは、まだDBに保存していないAPIから取得したデータです。
9
9
  そこで保存処理がわからず困っています。
@@ -22,9 +22,10 @@
22
22
  <% end %>
23
23
  ```
24
24
  このように記載しています
25
+ ビューでは、
25
- 表示できています。
26
+ APIで種痘したデータも表示できています。
26
- ![イメージ説明](f7b44306d106478649dbf2dbcbcee187.png)
27
27
 
28
+
28
29
  GoogleDeveloper ツールで検証すると
29
30
  ![イメージ説明](30eb51097704386a8c181987fc18f9e1.png)
30
31
 

1

コードが見にくいのでタグで囲みました。

2018/06/13 10:13

投稿

happy_teeth
happy_teeth

スコア42

title CHANGED
@@ -1,1 +1,1 @@
1
- Rails ビュに表示されている、APIのデータを保存する方法について教えていただけますか?
1
+ Rails ActionController::ParameterMissingエラが出ます
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ここに質問の内容を詳しく書いてください。
3
+
4
- RAilsでGoogleBookを取得して、表示するシステムを作っています。
4
+ RailsでGoogleBook APIを取得して、表示するシステムを作っています。
5
5
  Railsは初心者です。
6
6
 
7
7
  Viewからコントローラへlink_to メソッドで移動して保存したいです。
@@ -9,6 +9,7 @@
9
9
  そこで保存処理がわからず困っています。
10
10
 
11
11
  ビューは
12
+ ```Rails
12
13
  <%= @books.each do |book| %>
13
14
  <div class="w3-quarter">
14
15
  <%= book.title %>
@@ -19,11 +20,12 @@
19
20
  new_book_path(book) %>
20
21
  </div>
21
22
  <% end %>
23
+ ```
22
24
  このように記載しています
23
25
  表示もできています。
24
26
  ![イメージ説明](f7b44306d106478649dbf2dbcbcee187.png)
25
27
 
26
- 検証すると
28
+ GoogleDeveloper ツールで検証すると
27
29
  ![イメージ説明](30eb51097704386a8c181987fc18f9e1.png)
28
30
 
29
31
 
@@ -38,19 +40,22 @@
38
40
  ```
39
41
  コントローラは
40
42
 
43
+ ```Rails
41
44
  # GET /books/new
42
45
  def new
43
46
  @book = Book.new(book_params)
44
47
  end
45
48
 
49
+ ```
46
50
  ストロングパラメータで
47
- white list through.
51
+ ```Rails
52
+
48
53
  def book_params
49
54
  params.require(:book).permit(:title, :author, :publish, :published)
50
55
  end
51
56
 
57
+ ```
52
58
  のように記載しています。
53
- DBのカラムにあるのは間違いないのですが、それ以前にparamsが取得できていません。
59
+ permit以下はDBのカラムにあるのは間違いないのですが、それ以前にparamsが取得できていません。
54
60
  ビューから取得できていません。
55
-
56
- APIで表示したデ保存する方法を教えていただけますか?
61
+ この場合、どうすればビュからコントローラに値渡せますか?