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

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

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

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

Q&A

1回答

847閲覧

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

kuma0808

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/30 06:36

編集2020/07/30 08:19

ruby on railsでアプリ作成中にNil location provided. Can't build URI.というエラーが出てしまい解決に困っています。

メッセージで、体温、症状、症状詳細を送信をしたいのですが
エラーが発生

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

イメージ説明

該当のソースコード

routes.rb

Rails.application.routes.draw do devise_for :users # root 'messages#index' root 'groups#index' resources :users, only: [:edit, :update] resources :groups, only: [:index, :new, :create, :edit, :update] resources :members, only: [:index,:edit] do resources :messages, only: [:index, :create] end # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

messages_controller.rb

class MessagesController < ApplicationController before_action :set_group def index @message = Message.new @messages = @group.messages.includes(:user) end def create @message = @group.messages.new(message_params) if @message.save redirect_to group_messages_path(@group), notice: 'メッセージが送信されました' else @messages = @group.messages.includes(:user) flash.now[:alert] = 'メッセージを入力してください。' render :index end end private def message_params params.require(:message).permit(:ondo, :symptom, :Textarea).merge(user_id: current_user.id) end def set_group @group = Group.find(params[:group_id]) end end

messages.rb

class Message < ApplicationRecord belongs_to :group belongs_to :user validates :ondo, presence: true validates :Textarea, presence: true validates :symptom, presence: true, inclusion: { in: 1..2 } end

20200730021825_create_messages.rb

class CreateMessages < ActiveRecord::Migration[6.0] def change create_table :messages do |t| t.integer :ondo t.integer :symptom t.string :Textarea t.references :group, foreign_key: true t.references :user, foreign_key: true t.timestamps end end end

message送信のview

.side .side__Header .side__Header--Box %ul.list %li.list__list-icon =link_to edit_user_path(current_user) do = icon('fas', 'user-edit') %span.name = icon('fas', 'user-circle') =current_user.name .side__Contents -# - current_user.groups.each do |group| -# .Group -# = link_to '#' do -# .Group__name -# = group.name .side__Contents--Box .side__Footer = form_with model: [@group, @message], html: {class: "Form"}, local: true do |f| -# .Form__contents -# = f.text_field :content, class: 'Form__inputContent', placeholder: 'type a message' -# = f.submit 'Send', class: 'Form__submit' -# %form.Form -# .Form__Heat -# %span.heat -# 体温 -# %select.Field{:name => "ondo",required:""} -# %option{:value => ""} - - - - - - -# %option{:value => "1",} 36.4以下 -# %option{:value => "2",} 36.5 -# %option{:value => "3"} 36.6 -# %option{:value => "4"} 36.7 -# %option{:value => "5"} 36.8 -# %option{:value => "6"} 36.9 -# %option{:value => "7"} 37.0 -# %option{:value => "8"} 37.1 -# %option{:value => "9"} 37.2 -# %option{:value => "10"} 37.3 -# %option{:value => "11"} 37.4 -# %option{:value => "12"} 37.5 -# %option{:value => "13"} 37.6 -# %option{:value => "14"} 37.7 -# %option{:value => "15"} 37.8 -# %option{:value => "16"} 37.9 -# %option{:value => "17"} 38.0 -# %option{:value => "18"} 38.1 -# %option{:value => "19"} 38.2 -# %option{:value => "20"} 38.3 -# %option{:value => "21"} 38.4 -# %option{:value => "22"} 38.5 -# %option{:value => "23"} 38.6以上 -# .Form__Symptom -# %span.symptom -# 症状 -# .Form__Symptom--Box -# %input.Form__radio--button{type: "radio", name:"symptom", value: "1", required: ""} 有 -# %input.Form__radio--button{type: "radio",name:"symptom", value: "2"} 無 -# %span 入力必須 -# .Form__Textarea -# %span.textarea -# 症状詳細 -# %textarea.Form__textContent{type: "textarea"} -# %button.Form__submit{type: "submit"} -# 送信

ターミナルで確認すると体温、症状、のデータしか送られない事が判明。
現状他に何が原因なのかが手詰まってしまいアドバイスいただけると幸いです。

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

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

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

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

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

winterboum

2020/07/30 08:02

プログラムは画像でなく<code>を使ってtextで載せて欲しい。 コピペもできないし検索もできないので読む気がしない
kuma0808

2020/07/30 08:22

ご不便おかけしてすみませんでした。 教えていただきましたコードでの記述に修正致しました。 もし機会があれば改めてよろしくお願いします。
guest

回答1

0

= form_with model: [@group, @message],でURL作成に関するエラーになっています。
routesをみると
resources :members, only: [:index,:edit] do resources :messages, only: [:index, :create] end
と members,:messages の階層はありますが
groups は1階層だけです。ので model: [@group, @message] で失敗していると思われます。
groups でも2階層を定義するか、
= form_with model: [current_user, @message],にするか、です。
後者の場合はどのgroupにするかの情報をどう渡すか考えてください

投稿2020/07/30 08:32

winterboum

総合スコア23567

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

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

kuma0808

2020/07/30 11:00

返信頂きありがとう御座います。 アドバイスいただいた内容を参考にし解決できました。 ありがとう御座いました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問