質問編集履歴
2
論点をまとめ、スタイル等の余計な部分を少し取り除きました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
deviseでのFirst argument in form cannot contain nil or be emptyエラーについて
|
body
CHANGED
@@ -1,19 +1,16 @@
|
|
1
1
|
###前提・実現したいこと
|
2
|
+
|
2
3
|
Youtubeで動画をスクレイピングしてまとめたサイトを作成しています。
|
3
4
|
ransackで検索機能を、deviseでログインや、会員登録といったセッション関係の機能を導入しています。
|
5
|
+
application.html.erbでナビゲーションバーにransackを用いたキーワード検索窓を埋め込んでいます。
|
4
6
|
|
5
|
-
application.html.erbでナビゲーションバーにransackを用いたキーワード検索窓を埋め込みました。
|
6
|
-
実現したいことは、
|
7
|
+
実現したいことは、ログインや会員登録などのセッションに関わるページへ移動する際に出るエラーの解消です。
|
7
8
|
|
8
|
-
|
9
|
+
ログインページ等を開こうとすると、
|
10
|
+
First argument in form cannot contain nil or be emptyというエラーが出てきます。
|
9
11
|
|
10
|
-
|
12
|
+
こちらのエラーに対する対処方法がわからず困っています。
|
11
13
|
|
12
|
-
まず、session_controllerやregistration_controllerに@searchを定義しない状態で、ログインページ等へ行くと、「No Ransack::Search object was provided to search_form_for!エラー」がでてしまったので、deviseのsession_controllerとregistration_controllerのnewアクションに対して@searchの定義を行いました。これでとりあえず、No Ransack::Search object was provided to search_form_for!のエラーは出てこなくなりました。
|
13
|
-
|
14
|
-
②次に、ログインページ等を開こうとすると、下記のエラーメッセージにあるように、フォームの最初の要素はnilは含んではいけないか、もしくはemptyではいけない、と怒られました。(First argument in form cannot contain nil or be empty)
|
15
|
-
ここでの対処方法がわからず困っています。
|
16
|
-
|
17
14
|
ご指導よろしくお願いします。
|
18
15
|
|
19
16
|
###発生している問題・エラーメッセージ
|
@@ -27,18 +24,12 @@
|
|
27
24
|
|
28
25
|
First argument in form cannot contain nil or be empty
|
29
26
|
Extracted source (around line #7):
|
30
|
-
|
31
|
-
<div style="font-size:1.2rem; font-weight:bold;">会員登録すると、お気に入り機能が使えます。</div>
|
32
27
|
|
33
|
-
<
|
28
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
34
29
|
<%= devise_error_messages! %>
|
30
|
+
|
35
|
-
|
31
|
+
```
|
36
32
|
|
37
|
-
ArgumentError in Users::Registrations#new
|
38
|
-
Showing /Users/mannnakakunn/rails_projects/inuinudouga/app/views/devise/registrations/new.html.erb where line #7 raised:
|
39
|
-
|
40
|
-
|
41
|
-
```
|
42
33
|
```
|
43
34
|
Showing /Users/mannnakakunn/rails_projects/inuinudouga/app/views/devise/sessions/new.html.erb where line #7 raised:
|
44
35
|
|
@@ -46,11 +37,8 @@
|
|
46
37
|
First argument in form cannot contain nil or be empty
|
47
38
|
Extracted source (around line #7):
|
48
39
|
|
49
|
-
<div style="font-size:1.2rem; font-weight:bold;">DogTubeに登録すると、お気に入り機能が使えます。</div>
|
50
|
-
|
51
|
-
<
|
40
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
52
41
|
<%= devise_error_messages! %>
|
53
|
-
</div>
|
54
42
|
|
55
43
|
```###ソースコード
|
56
44
|
|
@@ -59,9 +47,8 @@
|
|
59
47
|
# application.html.erb
|
60
48
|
|
61
49
|
<div class="navbar z-depth-0">
|
62
|
-
<nav
|
50
|
+
<nav>
|
63
|
-
<div class="nav-wrapper"
|
51
|
+
<div class="nav-wrapper">
|
64
|
-
|
65
52
|
<%= search_form_for @search do |f| %>
|
66
53
|
<div class="left input-field">
|
67
54
|
<%= f.text_field :title_cont, placeholder: 'キーワードを入力', :type=>"search",:id=>"search",:required=>"true" %>
|
@@ -70,10 +57,7 @@
|
|
70
57
|
</div>
|
71
58
|
<% end %>
|
72
59
|
|
73
|
-
<%= link_to "Top",dogs_path ,{ :'data-no-turbolink' => "true"
|
60
|
+
<%= link_to "Top",dogs_path ,{ :'data-no-turbolink' => "true" } %>
|
74
|
-
font-family: 'Homemade Apple', cursive;
|
75
|
-
font-weight:800; font-size:3rem;
|
76
|
-
height:1.7rem; color:#333; margin:0 0 0 14%;" ,:class =>"" } %>
|
77
61
|
|
78
62
|
```
|
79
63
|
```ruby
|
@@ -93,7 +77,7 @@
|
|
93
77
|
class Users::RegistrationsController < Devise::RegistrationsController
|
94
78
|
|
95
79
|
def new
|
96
|
-
|
80
|
+
@search = Dog.search(params[:q])
|
97
81
|
end
|
98
82
|
|
99
83
|
end
|
@@ -103,6 +87,6 @@
|
|
103
87
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
104
88
|
|
105
89
|
Rails 4.2.2
|
106
|
-
Ruby
|
90
|
+
Ruby 2.2.2
|
107
|
-
devise
|
91
|
+
devise '3.4.0'
|
108
92
|
ransack
|
1
タイトル、ソースコードの修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ransackによる
|
1
|
+
ransackによる検索窓をナビゲーションバーに埋め込みつつ、deviseでのログイン機能を実現する方法について
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
Youtubeで動画をスクレイピングしてまとめたサイトを作成しています。
|
3
|
-
ransackで検索機能を、deviseでセッション関係の機能を導入しています。
|
3
|
+
ransackで検索機能を、deviseでログインや、会員登録といったセッション関係の機能を導入しています。
|
4
4
|
|
5
5
|
application.html.erbでナビゲーションバーにransackを用いたキーワード検索窓を埋め込みました。
|
6
6
|
実現したいことは、その検索窓があることによって起こっていると思われるログインや会員登録などのセッションに関わるページへ移動する際に出るエラーの解消です。
|
@@ -9,15 +9,13 @@
|
|
9
9
|
|
10
10
|
①No Ransack::Search object was provided to search_form_for!エラーについて
|
11
11
|
|
12
|
-
|
12
|
+
まず、session_controllerやregistration_controllerに@searchを定義しない状態で、ログインページ等へ行くと、「No Ransack::Search object was provided to search_form_for!エラー」がでてしまったので、deviseのsession_controllerとregistration_controllerのnewアクションに対して@searchの定義を行いました。これでとりあえず、No Ransack::Search object was provided to search_form_for!のエラーは出てこなくなりました。
|
13
13
|
|
14
|
-
②次に、ログインページ等を開こうとすると、フォームの最初の要素はnilは含んではいけないか、もしくはemptyではいけない、と怒られました。(First argument in form cannot contain nil or be empty)
|
14
|
+
②次に、ログインページ等を開こうとすると、下記のエラーメッセージにあるように、フォームの最初の要素はnilは含んではいけないか、もしくはemptyではいけない、と怒られました。(First argument in form cannot contain nil or be empty)
|
15
|
-
|
15
|
+
ここでの対処方法がわからず困っています。
|
16
16
|
|
17
|
-
|
18
17
|
ご指導よろしくお願いします。
|
19
18
|
|
20
|
-
|
21
19
|
###発生している問題・エラーメッセージ
|
22
20
|
|
23
21
|
エラーメッセージ
|
@@ -90,7 +88,7 @@
|
|
90
88
|
|
91
89
|
end
|
92
90
|
|
93
|
-
#
|
91
|
+
# registration_controller.rb
|
94
92
|
|
95
93
|
class Users::RegistrationsController < Devise::RegistrationsController
|
96
94
|
|