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

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

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

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

443閲覧

【javascript・ rails】フォームの実装

rikako_hira

総合スコア13

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/08/26 10:06

編集2022/09/04 23:11

前提

rails と javascriptを用いて家計簿アプリを実装しています。

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

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

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

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

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

winterboum

2022/08/28 01:05

code、エラーメッセージなどは画像貼り付けやめて
rikako_hira

2022/08/28 03:15

修正しました。 よろしくお願いいたします。
guest

回答1

0

ベストアンサー

JS もきちんとインデントしましょう

javascript は不得意なのですが、、、
if(t.matches('#add')){ の d.parentNode.insertBefore(d.cloneNode(true),d.nextElementSibling);

add の親の子供をそのまま copy
ってことですよね。
ですから 値が入ったままcopyされます。
見えないcopy元をつくっておくとか、copyしてから価を消すとか、非同期でサーバに戻してサーバに書かせるか、
ですね。

で、
それしても今のままでは「1行目のフォームしかデータベースに保存されない。」は治りません。
(?? とおもってるのですが、最後 ではなく1行目?)
今のままだと 入力要素の name はみなおなじになります。nameが同じ要素は最後に取り込まれたものの値だけが送られます。
追加する毎に name が変わるようにするか => assettable[balance0], assettable[balance1], assettable[balance2] ,,,となるように
配列な name にするか assettable[][balance] だったかな、、、
にする必要があります。
当然、createもそれに合わせてください

投稿2022/08/28 04:57

winterboum

総合スコア23347

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

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

rikako_hira

2022/08/28 10:45

コメントありがとうござます。 値が入ったままcopyされる件については、解消できました。コードを変更したので、ご確認いただけると幸いです。アドバイスいただきましたとおり、フォームを識別番号で管理する等に変更しました。 しかしながら、現状パラメーターでフォーム情報すべてを送ることができずにいます。createアクションについて、ヒントをいただけないでしょうか。よろしくお願いいたします。
winterboum

2022/08/28 12:07

識別番号 はパラメーターで渡ります? name をユニークにしなければ。。。 一つ追加したときの html を確認してみてください。 送信したときのparamsを確認してみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問