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

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

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

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データ構造

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Q&A

2回答

386閲覧

Ruby on RailsのForm_for

NatsukiKataoka1

総合スコア8

Ruby

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データ構造

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

0グッド

0クリップ

投稿2020/02/13 02:36

前提・実現したいこと

Ruby on Rails6 の Form_forを使ってデータベースにデータを保存したいです。
しかし、以下のエラーが発生してうまく行きません。

発生している問題・エラーメッセージ

ruby

1undefined method `welcome_parties_path' for #<#<Class:0x00007f96823c26a0>:0x00007f96823c0d50> 2Did you mean? welcome_parties_new_path

ruby

1#new.html.erb 2<%= form_for(@party_new) do |f| %> 3<%= f.text_field :name %> 4<% end %>

ちなみにターミナルで調べたパスはこうなっています。

welcome_parties_new GET /welcome_parties/new(.:format) dashboard#new

controllerでは下のようになっています。

ruby

1def new 2 @party_new = WelcomeParty.new 3end

とても困っています。ぜひ解決案を押しててくれると本当に嬉しいです。

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

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

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

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

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

guest

回答2

0

もう一件の質問も含めて拝見して感じたのは、Railsの標準というか、defaultというかRailsが期待しているというか、そういうものとは異なる作りになっていると感じます。
それはそれでも動くようにはできるのですが、質問した場合そのことが明記されていないと回答者は標準の作りと思うので、正しい答えに辿りつけません。
標準で作りなおすか、さもなせれば必要なcodeを載せるかしてください。
標準でない場合に載せるのはとりあえずは以下かなぁ
config/routes.rb, dashboardのcontroller、new.html.erbを呼び出しているcontroller、そもそもnew.html.erbはviews/なにの/new.html.erb なのか。
標準とは違うので、file名だけとか「コントローラ」とだけでは判断を間違えます。controllerはfile名を、viewは一つ上のdir名から明記してください。

標準でないと質問するにも大変でしょ

投稿2020/02/13 08:15

winterboum

総合スコア23567

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

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

0

ターミナルで調べたパスはこうなっています。

newはあくまで新規作成ページの表示用のルートなので、実際に結果を登録するcreateアクションが別途必要です。

そして、form_withのデフォルトは、resourcesなどで定義する標準的なルーティングを前提としていますので、それから外れる場合はURLの手動設定が必要です。

投稿2020/02/13 02:46

maisumakun

総合スコア146018

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

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

NatsukiKataoka1

2020/02/13 03:01

以下のようにすると: ``` <%= form_for(@party_new) url:welcome_parties_new_path do |f| %> <%= f.text_field :name %> <% end %> ``` localhost:3000でこのようなエラーが発生しています。 ``` ActionView::SyntaxErrorInTemplate in DashboardController#new Encountered a syntax error while rendering template: check <%= form_for(@party_new) url:welcome_parties_new_path do |f| %> <%= f.text_field :name %> <% end %> aa ``` createアクション利用する前にエラーが発生してしまいます。どうしたら良いでしょうか、、?
maisumakun

2020/02/13 03:09

あえてnewアクションに送信したい事情はどのようなものでしょうか?
NatsukiKataoka1

2020/02/13 03:35

申し訳ないのですが言っている意味がわかりません。 ようするにどうすれば良いのでしょうか。
maisumakun

2020/02/13 03:42

「createアクションを作成する」のではなく「urlを書き足す」方法を選んだのはどのような理由でしょうか?
NatsukiKataoka1

2020/02/13 03:52

特にありません。自分はRails勉強し始めたばかりなのでよくわからずどっかのサイトに書いてある通りにしました。
maisumakun

2020/02/13 03:59 編集

> どっかのサイトに書いてある通りにしました。 Railsの標準的なやり方から外れているので、なにか意図があってのものと考えました。 通常は新規作成用のフォームをnewで表示して、そこで入力されたデータをcreateに送信します(その流れであればform_forの書き方は元のままで動きます)。
NatsukiKataoka1

2020/02/13 04:44

その通りにやってみました。そうしたらformのsubmitボタンを押しているのですが、データベースにも保存されません。どうしたらよろしいでしょうか、、? #controller def create @party_new = WelcomeParty.new(set_circle) respond_to do |format| if @party_new.save format.html { render :date } format.json { render :show, status: :created, location: @party_new } else format.html { render :new } format.json { render json: @party_new.errors, status: :unprocessable_entity } end end end private def set_circle params.require(:welcome_party).permit(:name,:date,:place, :content, :fee, :belonging, :comment) end
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問