🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1344閲覧

Ruby on Rails 6 超入門 フォームに入力して送信してもデータが追加されない。

MitAbe

総合スコア15

Ruby

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

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/01/24 14:55

現在、Ruby on Rails 6 超入門という教材で勉強し始めたばかりの
者です。
【データの新規作成】という項目で、フォームに入力して送信をしてもデータが追加されません。
分かりずらい質問で大変申し訳ありませんが、どなたか教えて頂けないでしょうか。
写真ものせておきます(なぜか左寄りに入力画面が出てきてしまい不格好です。教科書ではもっときれいなのですが...)
何卒宜しくお願い致します。
###フォームに入力時の写真です。(左に寄って不格好です。)
イメージ説明
###送信したデータが追加されません。
イメージ説明
###下の写真は教科書のものです。本来ならば、下の様になると思うのですが
イメージ説明
###index.html.rb

<h1 class="display-4 text-primary">People#index</h1> <p><%= @msg %></p> <table class="table"> <tr> <th>Id</th><th>Name</th> </tr> <% @data.each do |obj| %> <tr> <td><%= obj.id %></td> <td><a href="/people/<%= obj.id %>"> <%= obj.name %></a></td> </tr> <% end %> </table>

###add.html.erb

<h1 class="display-4 text-primary">People#add</h1> <p><%= @msg %></p> <%= form_for(@person, url:{controller:'people', action:'create'}) do |form| %> <div class="form-group"> <label for="name">Name</label> <%= form.text_field :name, class:"form-control" %> </div> <div class="form-group"> <label for="age">Age</label> <%= form.text_field :age, class:"form-control" %> </div> <div class="form-group"> <label for="mail">Mail</label> <%= form.text_field :mail, class:"form-control" %> </div> <%= form.submit class:"btn btn-primary" %> <% end %>

###people_controller.rb

class PeopleController < ApplicationController def index @msg = 'Person data.' @data = Person.all end def show @msg = "Indexed data." @data = Person.find(params[:id]) end def add @msg = "add new data." @person = Person.new end def create if request.post? then obj = Person.create(name: params['name'], age: params['age'], mail:params['mail']) end redirect_to '/people' end end

###routes.rb

Rails.application.routes.draw do get 'people/index' get 'people', to: 'people#index' get 'people/add' post 'people/add', to: 'people#create' get 'people/:id', to: 'people#show' get 'msgboard', to: 'msgboard#index' post 'msgboard', to: 'msgboard#index' get 'msgboard/index' post 'msgboard/index' get 'hello/index' get 'hello', to: 'hello#index' get 'hello/other' post 'hello', to: 'hello#index' post 'hello/index' # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

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

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

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

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

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

m.ts10806

2021/01/24 21:34

DBは直接確認されたのでしょうか。 あと、コンソールにはINSERTを実行した足跡はありますか?
MitAbe

2021/01/27 06:38

m.ts10806様へ ご指摘頂いたことなのですが、DBはどのように確認するものなのでしょうか?また、何を確認すればよいでしょうか? 『コンソールにはINSERTを実行した足跡はありますか?』とはどのような事なのでしょうか? はじめたばかりで、アドバイスして頂いた事は基本的な事なのかもしれませんが、再度手順等をお教え頂くことは可能でしょうか?
m.ts10806

2021/01/27 06:43

>DBはどのように確認するものなのでしょうか? コマンドをたたいてログインするか、何かしらのツールを使います >『コンソールにはINSERTを実行した足跡はありますか?』 どのように環境作ったのか知らないですが、大抵はrails sを実行したコマンドラインにログが吐き出されます。「コンソール」は実行中のコマンドラインの画面のことです。
MitAbe

2021/01/27 07:07

ありがとうございます。 行ってみます。
m.ts10806

2021/01/27 07:09

Railsチュートリアルを通したことがあるならおおよそ分かりそうな概念です。 何かの本よりチュートリアルを優先すべきかと。 デバッグの仕方とかテストの仕方とか、「言語関係なくプログラミングのために必要な基礎」が詰まっています
MitAbe

2021/01/29 13:28

チュートリアルを優先してみます。 良い アドバイスありがとうございます。
guest

回答1

0

ベストアンサー

logを読むと分かると思います。
obj = Person.create( の行の params['name'] などをparams[:person]['name'] にしてください。

投稿2021/01/24 22:59

winterboum

総合スコア23567

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

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

MitAbe

2021/01/27 07:14

winterboum 様へ ご回答誠にありがとうございました。データが無事追加されました。 本当にありがとうございます。 ちなみになのですが、記入枠等が左にかた寄るのはなぜでしょうか。 お忙しいとは思いますが、何卒、ご回答の程宜しくお願い致します。
winterboum

2021/01/27 07:27

CSSを勉強してください
MitAbe

2021/01/29 13:25

ご回答ありがとうございます。 早速勉強致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問