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

質問編集履歴

2

論点をまとめ、スタイル等の余計な部分を少し取り除きました

2016/01/26 22:21

投稿

mannnakakunn
mannnakakunn

スコア24

title CHANGED
@@ -1,1 +1,1 @@
1
- ransackによる検索窓をナビゲーションバーに埋め込みつつ、deviseでのログイン機能を実現する方法について
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
- ①No Ransack::Search object was provided to search_form_for!エラーについ
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
- <div style="font-size:1rem;"><%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
28
+ <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
34
29
  <%= devise_error_messages! %>
30
+
35
- </div>
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
- <div style="font-size:1rem;"><%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
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 style="margin:15px 0 15px 0;" class="z-depth-0">
50
+ <nav>
63
- <div class="nav-wrapper" style="background-color:#FFF;">
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" ,:style => "
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
- @search = Dog.search(params[:q])
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

タイトル、ソースコードの修正

2016/01/26 22:21

投稿

mannnakakunn
mannnakakunn

スコア24

title CHANGED
@@ -1,1 +1,1 @@
1
- ransackによる@searchモデルを、deviseによsession controllerに認識させる方法
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
- 最初にログインページ等へ行くと、「@searchなんて知らないといわれてしまったので、deviseのsession_controllerとregistration_controllerのnewアクションに対して@searchの定義を行いました。これでとりあえず、No Ransack::Search object was provided to search_form_for!のエラーは出てこなくなりました。
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
- # registration.rb
91
+ # registration_controller.rb
94
92
 
95
93
  class Users::RegistrationsController < Devise::RegistrationsController
96
94