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

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

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

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

Q&A

解決済

1回答

998閲覧

ランダムで単語を表示するアプリを作りたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2021/07/26 06:28

編集2021/07/26 06:51

前提・実現したいこと

Rails初心者です。
適当な単語をデータベースに登録し、登録した単語をランダムに表示させたうえで物語を書いて登録するアプリを作りたいのですが、すでに物語を登録する機能においてcreateを使ってしまっていて(物語を登録する機能自体は問題なく動いています)、どう動かせばいいか分からないです…。エラーメッセージが出ないのですが、登録ボタンを押しても単語が登録されません。
プログラミングもあまり得意ではないので本当に初歩的なところで躓いていますが、教えていただければ幸いです。

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

#index.html.erb

Ruby

1 <h2>単語を登録</h2> 2 <%= form_with model: @novel , url: "/novels/word" do |f| %> 3 <%= f.text_field :word %> 4 <%= f.submit '登録' %> 5 <% end %>

#novels_controller.rb

Ruby

1 def word 2 @novel = Novel.new(novel_params) 3 # インスタンスの保存に成功した場合の処理 4 if @novel.save 5 flash[:success] = "ユーザを登録しました" 6 redirect_to '/' 7 # インスタンスの保存に失敗した場合の処理 8 else 9 flash[:danger] = "ユーザの登録に失敗しました" 10 render 'new' 11 end 12 end 13 14 private 15 16 def novel_params 17 params.require(:novel).permit(:word) 18 end

#word.html.erb

Ruby

1<p> 2 <%= @novel.word %> 3</p> 4 5<%= link_to 'Back', '/' %>

#route.rb

Ruby

1Rails.application.routes.draw do 2 root 'novels#index' 3 resources :novels 4 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 5 6 get '/novels/search/:title',to: 'novels#search' 7 8end

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

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

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

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

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

guest

回答1

0

ベストアンサー

アプリの機能がいまいちわかっていないのですが、単語を登録するところまでをお話しします。

今回controller側でwordアクションは作成されていますが、ルーティングの記述がありませんので、まずはルーティングを設定することです。

その上で、ターミナル上でrake routesで設定したルーティングのURLを確認して
form_withのurlに記述してください。(ただ今回の場合urlの記述は省略しても問題ないと思いますが、、、)
あとエラーが出ない原因は恐らくform_withにlocal:trueを記載していないため、ajax通信が走っていると思われます。(ターミナル上ではエラーが表示されているかと思います)

投稿2021/07/26 13:44

J_O

総合スコア143

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

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

退会済みユーザー

退会済みユーザー

2021/09/04 05:51 編集

ルーティングのところをあまり気にしていませんでした。エラーが出ないのはajax通信が走っているからなのですね! 勉強になりました。
退会済みユーザー

退会済みユーザー

2021/09/04 05:48

ご丁寧にありがとうございます! 時間が空いてしまいましたが再度挑戦します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問