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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

167閲覧

3 == 3 => false 整数同士の比較が正しくできない

tackii

総合スコア16

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2018/09/26 18:18

前提・実現したいこと

先着1名しかお気に入りできないブログの作成(ログイン機能付き)

特定のブログが、ログイン中のユーザとは別のユーザにより
先にお気に入りされているかどうか判別し、
ブログのお気に入りボタンの表示、非表示を条件分岐させたいと考えています。

発生している問題・エラーメッセージ

現在ログイン中ユーザのidと、先にブログをお気に入りしたユーザのidを
取得、比較したところ、同じ値なのに一致していないという結果になります。
状況が理解できず困っています。

当該の比較結果

if文作成中のpryコンソール画面

lang

1[19] pry(#<#<Class:0x007f86f40ad110>>)> @favorites.user_id.integer? 2=> true 3[20] pry(#<#<Class:0x007f86f40ad110>>)> current_user.id.integer? 4=> true 5[21] pry(#<#<Class:0x007f86f40ad110>>)> @favorites.user_id 6=> 3 7[22] pry(#<#<Class:0x007f86f40ad110>>)> current_user.id 8=> 3 9[23] pry(#<#<Class:0x007f86f40ad110>>)> @favorites.user_id == current_user.id? 10=> false

if文作成中のhtml

lang

1 2<div class="container"> 3 <div class="row"> 4 <div class="col-lg-12"> 5 6 <h1>問い合わせ詳細</h1> 7 <div class="col-md-6"> 8 <p>件名:<%= @contact.title %></p> 9 <p>内容:<%= @contact.content %></p> 10 <p><%= image_tag @contact.image %></p> 11 12 <% unless @contact.user_id == current_user.id %> 13 <% if @favorite.present? %> 14 <% if @favorites.user_id == current_user.id? %> 15 <%= link_to 'お気に入り解除する', favorite_path(id: @favorite.id), 16 method: :delete, class: 'btn btn-default btn-sm btn btn-danger' %> 17 <% else %> 18 <%= link_to 'お気に入りにする', favorites_path(contact_id: @contact.id), 19 method: :post, class: 'btn btn-default btn-sm btn btn-primary' %> 20 <% end %> 21 <% end %> 22 <%= link_to 'お気に入りにする', favorites_path(contact_id: @contact.id), 23 method: :post, class: 'btn btn-default btn-sm btn btn-primary' %> 24 25 <% end %> 26 27    <% binding.pry %>

コントローラー

rb

1class ContactsController < ApplicationController 2 before_action :set_contact, only:[:show, :edit, :update, :destroy] 3 before_action :login_check, only: [:index, :new, :edit, :show, :destroy] 4 5 def index 6 @contacts = Contact.all 7 end 8 9 def new 10 if params[:back] 11 @contact = Contact.new(contact_params) 12 else 13 @contact = Contact.new 14 end 15 end 16 17 def create 18 @contact = Contact.new(contact_params) 19 @contact.user_id = current_user.id 20 if @contact.save 21 #ContactMailer.contact_mail(@contact).deliver 22 redirect_to contacts_path, notice: "問い合わせ中・・・" 23 else 24 render 'new' 25 end 26 end 27 28 def show 29 @contact = Contact.find(params[:id]) 30 31 @favorite = current_user.favorites.find_by(contact_id: @contact.id) 32 @favorites = Favorite.find_by(contact_id: @contact.id) 33 34 35 @responses = @contact.responses.includes(:user).all 36 @response = @contact.responses.build(user_id: current_user.id) if current_user 37 end 38 39 def edit 40 @contact = Contact.find(params[:id]) 41 end 42 43 def update 44 @contact = Contact.find(params[:id]) 45 if @contact.update(contact_params) 46 redirect_to contacts_path, notice: "投稿内容を更新しました" 47 else 48 render 'edit' 49 end 50 end 51 52 def destroy 53 @contact.destroy 54 redirect_to contacts_path, notice: "投稿を削除しました" 55 end 56 57 def confirm 58 @contact = Contact.new(contact_params) 59 @contact.user_id = current_user.id 60 render :new if @contact.invalid? 61 end 62 63 64 private 65 66 def contact_params 67 params.require(:contact).permit(:title,:content, :image, :image_cache) 68 end 69 70 def set_contact 71 @contact = Contact.find(params[:id]) 72 end 73 74 def login_check 75 unless current_user 76 render new_session_path 77 end 78 end 79end

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

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

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

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

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

guest

回答1

0

自己解決

[23] pry(#<#Class:0x007f86f40ad110>)> @favorites.user_id == current_user.id?

最後の"?"が不要でした・・・

投稿2018/09/26 18:25

tackii

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問