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

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

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

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

Q&A

解決済

1回答

147閲覧

mailerでページ更新後のエラー

takeke

総合スコア60

Ruby

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

0グッド

0クリップ

投稿2018/05/07 12:58

お問い合わせメールに関してわからない点が出てきたので質問させていただきます。

現在参考サイト(https://www.imd-net.com/column/1731/)をみながらお問い合わせ機能を実装したのですが、ページの更新を行うとエラーが出てきてしまうので困惑しております。

実際やったことは、上記のサイトにて自分の環境では正常に動かなかったので追記でコントローラーに

def inquiry_params params.require(:inquiry).permit(:name, :email, :message, :inquiry) end

こちらを追加して、アクション内を@inquiry = Inquiry.new(inquiry_params)という風に記述したらなんとかお問い合わせ機能は追加できたのですが、お問い合わせ機能のindex,confirm,thanksとページがあるのうち、confirmとthanksのページにて、ページ更新をするとエラーが出てきてしまいます。エラー内容は以下

No route matches [GET] "/inquiry/confirm"

参考サイトにてpostの指定しか書いてなかったのは分かっていたので、こちらはroutes.rbにget追加したらエラーは消えました。

そしてこの次のエラーですが以下です

ActionController::ParameterMissing (param is missing or the value is empty: inquiry): app/controllers/inquiry_controller.rb:38:in `inquiry_params' app/controllers/inquiry_controller.rb:30:in `thanks'

こちらなのですがどうすればいいでしょうか?
現状ページ更新しなければ問題は起こらないのですが、対処したほうがいいと思いましたが改善策がわからなかったので質問させていただきました。何かわかりそうな方いましたらよろしくお願いしますm(._.)m

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

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

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

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

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

guest

回答1

0

ベストアンサー

RubyもRailsも分かりませんが!

ページの更新を行うとエラーが出てきてしまう

No route matches [GET] "/inquiry/confirm"

それはプログラム的なエラーではなく、
405エラー
「サイト側が許可していない、ユーザーの不正なアクセス」に対して発生するエラーかと思います。

問合せの通常のフローを考えるならば、
confirm も thanks も getでアクセスできる必要はないかと思います。
どちらも、postデータを処理する画面なので、getアクセスだと処理対象のpostデータがなくて困りますからね・・

■ getでのアクセスを許可するなら
安易ですが、
confirmでもthanksでも、強制的にindexにリダイレクトさせてしまうのが、楽です。

■ getでのアクセスを許可しないなら
405エラーの場合に、フロント用のエラーページを表示できるようにするのがいいかと思います。
.htaccess の ErrorDocument でも設定できますし、
フレームワークにもエラーページ用テンプレートを指定できるような機能があるのではないでしょうか?

エラーページには、
・不正なアクセスです
・正規ルートでアクセスしてください
といったメッセージの記載があれば充分なはず・・・

ご参考になれば^^

投稿2018/05/08 03:33

mix-peach

総合スコア1910

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

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

takeke

2018/05/08 08:00

回答ありがとうございます! などほど、確かにgetの必要はありませんよね。 get許可する場合にroutes.rbにて遷移先をindexという訳ですね。確かに楽そうですw あと、get許可しない場合、.htaccessは以前手を出そうとして諦めたので...フレームワークにも機能あります!使い方がよく分かっていませんが調べればできそうな気がします。 とりあえず上記の楽な方で対処して余裕があればもう一度.htaccessみてみようと思います!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問