前提・実現したいこと
rails でform_tagを使ってDBにデータを転送しようとしていますがsubmitを押しても下記のURLになるだけでDBに転送されていません。 binding.pryを試してみましたがどうやらコントローラまでデータが届いていないようです。
発生している問題・エラーメッセージ
https://.amazonaws.com/utf8=%E2%9C%93&authenticity_token=6k6jv7Vsd8tPghqsf3XqdJ4%2By%2FIYLS2cWhyX1JQX280K5YAjPAfHRYCS7DP8XUHaGydzuHm2rKqfUI0V66ksFg%3D%3D&address=aaa&comment=aaa
該当のソースコード
<%= form_tag('/comments', method: :post) do %> <input type="string" name="address"placeholder="メールアドレス、連絡先"></input> <textarea type="text" name="comment" placeholder= "内容"></textarea> <input class=btn type="submit" value="送信"> <%end%> class CommentsController < ApplicationController def new @comments=Comment.new end def show @comments =Comment.all end def create Comment.create(comment_params) end def destry @comments = Comment.find(params[:id]) end def purchase Payjp.api_key = ENV["PAYJP_SECRET_KEY"] Payjp::Charge.create( :amount => 500, :card => params['payjp-token'], :currency => 'jpy' ) end private def comment_params params.permit(:comment, :address) end end Rails.application.routes.draw do root 'comments#new' resources :comments do collection do post 'purchase' end end # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end
試したこと
binding.pryをしましたが変化はありませんでした。
補足情報(FW/ツールのバージョンなど)
ソースのせて
忘れていましたすいません
controllerも。
https://.amazonaws.com/utf8=%E2%9C%93&authenticity_token=
と書かれているのは、どこから取り出したものですか?
URLとしては奇妙な点がいくつか。
またエラーメッセージのらしくない
ああ、ブラウザのURL欄か。
routes.rbも必要そう
urlでaws.comの後に開発環境のアドレスになりますが省略しています。それ以外は原文ママです。色々調べたんですが同じ現象が見当たりませんでした。
省略されると、必要な情報が落ちてしまうこともあるので、省略ではなく名前を変えるとかしてもらうほうが良いです。 : ・ ? = & などが落ちるとわからなくなる。
で、
Railsの標準的な書き方ではないですが、これでうまくいかない原因が見えてきません。「value="送信"」をcllickした時のlogを載せてください
このURLならcontrollerに渡っていると思います。
logはどうなってます?
log は確認することができました。
ただcreateメゾットには映らなくてデータも転送されていないです。です。
済みません、logがどうなっているかわからないと仮説が検証出来ないのでその先に進めません
Started GET "/?utf8=%E2%9C%93&authenticity_token=JkxzA4Im56cz577aUa12%2BeTCT914e2xYhezmovmDg8fG51CfC01XKfz3SEXShd1XYdv3lxng7W5AoPxjhj10HA%3D%3D&address=aaaa&comment=aaa" for 49.98.130.72 at 2021-02-07 06:33:25 +0000
Cannot render console from 49.98.130.72! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by CommentsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"JkxzA4Im56cz577aUa12+eTCT914e2xYhezmovmDg8fG51CfC01XKfz3SEXShd1XYdv3lxng7W5AoPxjhj10HA==", "address"=>"aaaa", "comment"=>"aaa"}
Rendering comments/index.html.erb within layouts/application
Rendered comments/index.html.erb within layouts/application (1.1ms)
Completed 200 OK in 27ms (Views: 26.2ms | ActiveRecord: 0.0ms)
rails sをした状態で入力するとターミナルにこういう風に出力されます。ごめんなさいlog
というのが正確にどれかわかりませんでした。すいません
回答2件
あなたの回答
tips
プレビュー