質問するログイン新規登録
Ruby on Rails 5

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

Ruby

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

Q&A

1回答

507閲覧

showアクションへ遷移させたい

20020822

総合スコア1

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2022/10/23 18:50

編集2022/10/23 23:47

0

0

前提

Rubyでアプリを作っています。
showアクション機能を実装中に以下のエラーメッセージが発生しました。

実現したいこと

showアクションの画面へ遷移させたいです。

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

undefined local variable or method `room' for #<#<Class:0x00007fc5feae7fb0>:0x00007fc5feae5ad0>

該当のソースコード

Ruby

1Rails.application.routes.draw do 2 devise_for :users 3 root to: "rooms#index" 4 resources :users, only: [:edit, :update] 5 resources :rooms, only: [:new, :create ,:show, :destroy] do 6 resources :messages, only: [:index, :create] 7 end 8end

Ruby

1class RoomsController < ApplicationController 2 3 def index 4 end 5 6 def new 7 @room = Room.new 8 end 9 10 def create 11 @room = Room.new(room_params) 12 if @room.save 13 redirect_to root_path 14 else 15 render :new 16 end 17 end 18 19 def show 20 map = Map.find(params[:id]) 21 end 22 23 def destroy 24 room = Room.find(params[:id]) 25 room.destroy 26 redirect_to root_path 27 end 28 29 private 30 31 def room_params 32 params.require(:room).permit(:name, user_ids: []) 33 end 34end

Ruby

1<div class="side-bar-header"> 2 <div class="header-name"> 3 <%= link_to current_user.name, edit_user_path(current_user) %> 4 </div> 5 <div class="create-room"> 6 <%= link_to "旅行先を共有する", new_room_path %> 7 </div> 8 <div class="map-room"> 9 <%= link_to "マップで調べる", show_room_path(room.id), method: :get %> 10 </div> 11</div> 12 13<div class="rooms"> 14 <% current_user.rooms.each do |room| %> 15 <div class="room"> 16 <div class="room-name"> 17 <%= link_to room.name, room_messages_path(room) %> 18 </div> 19 </div> 20 <% end %> 21</div>

試したこと

別で用意したshow.html.erbのビューに遷移させたく、

<%= link_to "マップで調べる", room_path(room.id), method: :get %>

上記のようにパスを書いたが遷移できなくエラーが出てしまいました。
おそらくshowアクションのパスが通っていないのが原因だと思うのですが、ミスが見当たらずに困っています。
かなりの初心者なのでコードを書くのが下手で申し訳ありませんが、ミスを教えていただけると幸いです。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

guest

回答1

0

おそらくshowアクションのパスが通っていないのが原因だと思うのですが

違います。エラーメッセージは、「roomが何者なのかわからない」と表示しています。

投稿2022/10/23 22:20

maisumakun

総合スコア146702

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問