<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<form action="/" method="POST">
<label>名前: <input type="text" name="target_name"></label>
<input type="submit" value="送信">
<label>年齢:</label><br>
<input type="number" name="age" value="">
</form>
</body> </html> フォームで年齢が表示されるようにしたいのですが、思うようにいきません。どこを直せばよいか教えていただきたいです。<% name = params['target_name'] %> <% name = params[:'age'] %> <% time_japan = Time.now.getlocal("+09:00") %> <p>今は<%= time_japan.hour %>時です。</p> <% if 6 <= time_japan.hour && time_japan.hour < 12 %> <p>おはよう、<%= name %>さん<%= name %></p> <% elsif 12 <= time_japan.hour && time_japan.hour < 18 %> <p>こんにちは、<%= name %>さん<%= name %></p> <% else %> <p>こんばんは、<%= name %>さん<%= name %></p> <% end %>
補足 今フォームデータの追加の練習段階で、当方初心者でメンターをつけて勉強中です。メンターからは以下の回答が来ました。その回答がヒントだと思うのですが、ちょっと難解で理解できなかったため、teratailで質問させていただきました。具体的な措置など下の説明よりわかりやすく説明していただけると幸いです。
名前のinputはname属性がageなので、受け取る時も
params[':age']ですね。 (編集済み)
そして受け取った値を入れる変数もnameになっていて、名前もname変数に入れています。
それぞれ違う変数に入れましょう、
そしてその変数を表示したいのでしたらrubyのコードとして表記しましょう。
<%= 変数名 %>
この3点を見直していただくと表示されるかと思います。
コントローラは作成済みですか? (params からの代入などはコントローラ側に記述した方が、ビューでは @variable_name を表示させた方が MVC っぽさが出ていいかもしれません)
あ、コンテンツを表示したいだけなのでコントローラはいらないかと思われます。何か書き方に間違いがあるようです。教えていただけると嬉しいです。
せっかく教えてくれる人がいるのですから、こうして質問文として纏めるのと同じように、メンターに質問した方が よりよいコミュニケーションになるかもしれません。それと "待ち時間" に試行錯誤してみるのもいいかもしれません
もっともな意見です。ですが、せめてこの質問だけは教えていただけませんか。次回からそうしたいと思います。質問できる時間や日にちが決まっていてなにぶん作業が進まないので...。ちょっと他力本願過ぎでしょうか、すみません。
Railsの場合、コントローラーは必須です。そのあたりの基本が抜けている気もします。
なるほど、そこから見直してみます。ご教授ありがとうございます!^^
あなたの回答
tips
プレビュー