質問編集履歴
4
routingについても記載しました
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
|

|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
115
|
+
> ec2-user:~/environment/google_books_API/book_app (master) $
|
116
|
+
|
117
|
+
の様になっています。
|
118
|
+
|
119
|
+
|
61
|
-
|
120
|
+
エラーによると、paramsが取得できていません。
|
121
|
+
|
62
|
-
この場合、どうすればビューからコントローラに
|
122
|
+
この場合、どうすればビューからコントローラに、選択したオブジェクトを渡せますか?
|
123
|
+
目的はDBに保存することです。手法が間違っていたら他の方法での実装方法を教えていただけますか?
|
3
回答が得られなかったので、英語のエラーを日本語に修正しました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Rails
|
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
画像を削除しました。
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
|
-

|
27
27
|
|
28
|
+
|
28
29
|
GoogleDeveloper ツールで検証すると
|
29
30
|

|
30
31
|
|
1
コードが見にくいのでタグで囲みました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Rails
|
1
|
+
Rails ActionController::ParameterMissingエラーが出ます。
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
|
3
|
+
|
4
|
-
|
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
|

|
25
27
|
|
26
|
-
検証すると
|
28
|
+
GoogleDeveloper ツールで検証すると
|
27
29
|

|
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
|
-
|
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
|
-
|
61
|
+
この場合、どうすればビューからコントローラに値を渡せますか?
|