質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

2491閲覧

ArgumentError in Users#index が発生しました

kazuki0714

総合スコア28

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/03/24 05:18

編集2019/03/24 05:35

マッチングアプリを作っております。

ログイン画面押した後や、ユーザーのプロフィール画面でArgumentErrorが発生します。

Nil location provided. Can't build URI.
とはどういう意味でしょうか?
ググっても出てこずでして。。。

イメージ説明

イメージ説明

画像をアップする際にエラーが発生するのかと思っていたのですが
/users/:idを見るとちゃんと登録されていたりします。

正直原因が分かっていないです。

何かお分かりであればアドバイスお願いいたします。

app/controllers/users_controller.rb

ruby

1class UsersController < ApplicationController 2 def index 3 @users = User.where.not(id: current_user.id) 4 end 5 6 def show 7 @user = User.find_by(id: params[:id]) 8 end 9end

app/views/users/show.html.erb

ruby

1<div class='usershowPage'> 2 <div class='container'> 3 <header class="header"> 4 <p class='header_logo'> 5 <%= link_to image_tag("techpit-march-icon.png"), users_path %> 6 </p> 7 </header> 8 <div class='userInfo'> 9 <div class='userInfo_img'> 10 <%= image_tag @user.img_name.url(:thumb) %> 11 </div> 12 <div class='userInfo_name'><%= @user.name%></div> 13 <div class='userInfo_selfIntroduction'><%= @user.self_introduction %></div> 14 </div> 15 <% if current_user.id == @user.id %> 16 <div class='userAction'> 17 <div class="userAction_edit userAction_common"> 18 <%= link_to(content_tag(:i, "", class: 'fas fa-edit fa-2x'), edit_user_registration_path) %> 19 <span>情報を編集</span> 20 </div> 21 <div class='userAction_logout userAction_common'> 22 <%= link_to(content_tag(:i, "", class: 'fas fa-cog fa-2x'), destroy_user_session_path, method: :delete) %> 23 <span>ログアウト</span> 24 </div> 25 </div> 26 <% end %> 27 </div> 28</div>

app/views/users/index.html.erb

ruby

1<div class="topPage"> 2 <nav class="nav"> 3 <ul> 4 <li class="personIcon"><%= link_to(content_tag(:i, "", class: 'fas fa-2x fa-user'), user_path(current_user.id)) %></li> 5 <li class="appIcon"><%= link_to image_tag("techpit-march-icon.png"), users_path %></li> 6 <li class="messageIcon"><%= link_to(content_tag(:i, "", class: 'fas fa-2x fa-comments'), matching_index_path) %></li> 7 </ul> 8 </nav> 9 <div id="tinderslide"> 10 <ul> 11 <% @users.each do |user| %> 12 <li data-user_id="<%= user.id %>"> 13 <div class="userName"><%= user.name %></div> 14 <%= image_tag user.img_name.url(:thumb) %> 15 <div class="like"></div> 16 <div class="dislike"></div> 17 </li> 18 <% end %> 19 </ul> 20 <div class="noUser">近くにお相手がいません。</div> 21 </div> 22 <div class="actions" id="actionBtnArea"> 23 <a href="#" class="dislike"><i class="fas fa-times fa-2x"></i></a> 24 <a href="#" class="like"><i class="fas fa-heart fa-2x"></i></a> 25 </div> 26</div> 27<script> 28 // スワイプするユーザー数の定数を定義 29 var usersNum = <%= @users.length %> 30 var currentUserIndex = 0; 31 var postReaction = function (user_id, reaction) { 32 $.ajaxSetup({ 33 headers: { 34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), 35 } 36 }); 37 $.ajax({ 38 type: "POST", 39 url: "<%= reactions_path %>", 40 data: { 41 user_id: user_id, 42 reaction: reaction, 43 }, 44 success: function(j_data){ 45 console.log("success") 46 } 47 }); 48 } 49 $("#tinderslide").jTinder({ 50 onDislike: function (item) { 51 currentUserIndex++; 52 checkUserNum(); 53 var user_id = item[0].dataset.user_id 54 postReaction(user_id, 'dislike') 55 }, 56 onLike: function (item) { 57 currentUserIndex++; 58 checkUserNum(); 59 var user_id = item[0].dataset.user_id 60 postReaction(user_id, 'like') 61 }, 62 animationRevertSpeed: 200, 63 animationSpeed: 400, 64 threshold: 1, 65 likeSelector: '.like', 66 dislikeSelector: '.dislike' 67 }); 68 $('.actions .like, .actions .dislike').click(function(e){ 69 e.preventDefault(); 70 $("#tinderslide").jTinder($(this).attr('class')); 71 }); 72 73 function checkUserNum() { 74 // スワイプするユーザー数とスワイプした回数が同じになればaddClassする 75 if (currentUserIndex === usersNum){ 76 $(".noUser").addClass("is-active"); 77 $("#actionBtnArea").addClass("is-none") 78 return; 79 } 80 } 81</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YakumoSaki

2019/03/24 10:37

エラーだけを見ると、 imgタグを作る際に使用する user.img_name.url がnilだった。というように見えます。 DB上のデータを確認してみると解決の糸口が見つかるかも知れません。
kazuki0714

2019/03/24 11:46

ありがとうございます。 User.allで調べて見るとimg_nameがnilのユーザーがいて、destroyでそのユーザーを削除すると解決しました。
guest

回答3

0

User.allで確認
img_nameがnilのユーザーがいないか調べる
User.destroyでそのユーザーを削除

投稿2019/04/25 12:56

kazuki0714

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

User.allで確認
img_nameがnilのユーザーがいないか調べる
User.destroyでそのユーザーを削除

投稿2019/04/15 09:41

kazuki0714

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

  1. User.allで確認
  2. img_nameがnilのユーザーがいないか調べる
  3. User.destroyでそのユーザーを削除

投稿2019/03/24 11:47

kazuki0714

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問