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

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

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

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

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

Q&A

解決済

1回答

517閲覧

rails のコントローラーで、 request.post? の判定が必ず false となってしまう。

Oshinko

総合スコア1

Ruby

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

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

0グッド

1クリップ

投稿2023/02/12 07:27

実現したいこと

  • コントローラーで、POST の場合の処理と、 GET の場合の処理を変更したい。

このため、

Ruby

1 if request.post? then 2 ・・・ 3 else 4 ・・・ 5 end

と記述しているが、必ず false (GET)と判定されてしまっている。

前提

書籍を参考に、入門用のWebサイトを作成しているが、
上述のような問題が発生してしまっている。

発生している問題

実行して、Webページより、アクセスし、Formから送信(POST)を行っているところまで、
確認しているが、その後、コントローラーで、request.post? が true とならない。

該当のソースコード

■コントローラ

Ruby

1 if request.post? then 2 @title = 'Result' 3 @msg = 'you typed: ' + params['input1'] + '.' 4 @value = params['input1'] 5 else 6 @title = 'Index' 7 ・・・ 8 end

■routes

Ruby

1Rails.application.routes.draw do 2 # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html 3 get 'hello/index' 4 get 'hello', to: 'hello#index' 5 post 'hello/index' 6 post 'hello', to: 'hello#index' 7end

■index.html.erb

Ruby

1<h1 class="display-4"><%= @title %></h1> 2<p><%= @msg %></p> 3<form method="POST" action="/hello/index"> 4 <input type="text" class="form-control" 5 name="input1" value="<%= @value %>"> 6 <input type="submit" class="btn btn-primary"> 7</form>

試したこと

Edge や Chrome で、試験してみたが、
ブラウザによる動作ではない模様。

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

Rails version: 7.0.4.2
Ruby version: ruby 3.1.3p185
環境:Windows 11

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

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

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

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

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

yuma.inaura

2023/02/12 12:23

Controllerのコードが省略されすぎているのでもう少し載せておきませんか あと関係ないかも知れないですが Ruby では if else に then って使わないですね
Oshinko

2023/02/12 12:56

環境の問題で、自己解決しました。ありがとうございました。
guest

回答1

0

自己解決

Rails 7.0.4.2 の使用をやめ、 Rails 6.1.7.2 にして、
Node.js も ver.18 から ver.16 にバージョンを下げて、
yarn を入れ、webpacker 5.4.3 にして再度、試験したところ、問題が解決しました。

7.0.4.2 でも良い解決策はあったのかもしれないが、暫定でこの対策で良しとします。

回答を頂いた方、ありがとうございました。

投稿2023/02/12 12:55

Oshinko

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問