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

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

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

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

Q&A

解決済

2回答

1179閲覧

ActiveRecord::RecordNotFound in GroupsController#editのエラーの解決

harabou

総合スコア5

Ruby

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/01/24 11:26

解決したいこと

エラーの解決

###詳細
rubyでグループ作成機能があるwebアプリケーションを作っています。
グループ編集のところでどうしても表題のエラーが発生します。
何卒ご教授よろしくお願いします。

https://gyazo.com/605e6b8d4b3153ae35f36a4df3918d8c

routes

1Rails.application.routes.draw do 2 devise_for :users 3 root 'groups#index' 4 resources :users, only: [:index, :edit, :update] 5 resources :groups, only: [:new, :create, :edit, :update] do 6 resources :messages, only: [:index, :create] 7 namespace :api do 8 resources :messages, only: :index, defaults: { format: 'json' } 9 end 10 end 11end

edit

1.chat-group-form 2 %h1 チャットグループ編集 3 = render partial: 'form', locals: { group: @group }

controller

1class GroupsController < ApplicationController 2 before_action :set_group, only: [:edit, :update] 3 4 def index 5 end 6 7 def new 8 @group = Group.new 9 @group.users << current_user 10 end 11 12 def create 13 @group = Group.new(group_params) 14 if @group.save 15 redirect_to root_path, notice: 'グループを作成しました' 16 else 17 render :new 18 end 19 end 20 21 def edit 22 @group = Group.find(params[:id]) 23 end 24 25 def update 26 if @group.update(group_params) 27 redirect_to group_messages_path(@group), notice: 'グループを更新しました' 28 else 29 render :edit 30 end 31 end 32 33 private 34 def group_params 35 params.require(:group).permit(:name, user_ids: [] ) 36 end 37 38 def set_group 39 @group = Group.find(params[:id]) 40 end 41end

対応策

スペルミスは無いようです。
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

リンク元のviewの問題です。

おそらく

haml

1- @groupes.each do |group| 2 = link_to "[Edit]", edit_group_path

的な感じだと思いますが
ただしくは

haml

1- @groupes.each do |group| 2 = link_to "[Edit]", edit_group_path(group)

です。

投稿2020/01/24 11:53

asm

総合スコア15147

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

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

harabou

2020/01/24 12:24

回答ありがとうございます! リンク元のviewですが、 .chat-main__group-info__right-box = link_to edit_group_path(current_user) do .edit-button="Edit" リンク先が  .chat-group-form   %h1 チャットグループ編集   = render partial: 'form', locals: { group: @group }  (current_user)を(groups)に変えてみましたがうまくいきませんでした。 無知ですみません...
clora

2020/01/24 12:41

groupsではなくて、groupです。 render メソッドを使うときの変数の渡し方を確認した方がいいです。
harabou

2020/01/24 12:55

教えていただいた通り、 = link_to edit_group_path(current_user) do .edit-button="Edit" を = link_to edit_group_path(@group) do .edit-button="Edit" に直して無事渡せました! renderメソッド、もっと勉強します!
guest

0

状況がよくわかりませんが、エラーの内容としては、Groupテーブルの中にid=3のグループが見当たりません、と言っています。Groupテーブルの中にid=3のグループがないのではないでしょうか?

投稿2020/01/24 11:49

clora

総合スコア72

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

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

harabou

2020/01/24 11:59

回答ありがとうございます! Groupテーブルにはid=3をもつグループは存在しませんでした。 ですが、編集したいグループはid=2のグループです。 現在のグループもid=2のグループなのですが... なぜ存在しないグループを編集しに行ってしまうのか、お知恵を拝借いただければと思います。
clora

2020/01/24 12:03

グループ編集ボタンのpathへの渡し方が間違っているのではないでしょうか?asmさんの回答を参考にして、linkのパスへのgroup情報の渡し方があっているか確認してみてください。
harabou

2020/01/24 12:07

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問