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

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

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

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

Q&A

解決済

1回答

332閲覧

Rails5 Form_withで登録内容がモデルに保存されません。

Doyaface

総合スコア11

Ruby on Rails 5

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

0グッド

0クリップ

投稿2019/03/31 07:16

前提・実現したいこと

Ruby on rails(ver5.2.3)で勉強の為に簡単なブログのようなものを作っています。
Form_withで投稿機能を実装しましたが、モデルにデータが飛ばないこと、画面が遷移しないことで困っています。

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

![イメージ説明
Create Articleを押すとArticleモデルにデータが保存され、ホーム画面に遷移する様にしたい。

該当のソースコード

rails

1new.html.haml 2 3.container 4 = form_with model: Article.new, local: true do |f| 5 %form.col.s12 6 .row 7 .input-field.col.s6 8 =f.text_field :title, class: "validate", id:"article_title" 9 =f.label :title 10 %form.col.s12 11 .row 12 .input-field.col.s12 13 =f.text_area :text, class: "materialize-textarea", id:"textarea1" 14 =f.label :text 15 =f.label :image 16 =f.file_field :image 17 .row 18 .row 19 =f.submit

rails

1 2articles_controller 3 4class ArticlesController < ApplicationController 5 6 def index 7 end 8 9 def new 10 @article = Article.new 11 end 12 def create 13 Article.create(article_params) 14 redirect_to article_url, notice: "投稿しました" 15 end 16 17 private 18 def article_params 19 params.require(:article).parmit(:title,:text,:image) 20 end 21end

rails

1Rails.application.routes.draw do 2 devise_for :users 3 resources :articles 4 root 'articles#index' 5end 6

試したこと

form_forで記載したところ画面の遷移はされているようでしたがモデルには保存されていませんでした。

<%= form_for(@article) do |f| %> <div> <div> <%= f.label :title %> </div> <%= f.text_field :title,id: :title%> </div> <div> <div> <%= f.label :image %> </div> <%= f.file_field :image, id: :image %> </div> <p><%= f.check_box :remove_image %>画像を削除する</p> <div> <div> <%= f.label :text %> </div> <%= f.text_area :text,id: :text,rows: 20,cols: 75 %> </div> <div><%= f.submit "投稿" %></div> <% end %> </div>

補足情報(FW/ツールのバージョンなど)

Rails 5.2.3
materializeCSSを使っています。
導入しているgemは
'pry-rails'
'compass-rails'
'sprockets'
'devise'
'mini_magick'
'haml-rails'
です。

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

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

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

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

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

guest

回答1

0

自己解決

Hamlが誤っていました。

rails

1new.html.haml 2 3.container 4 = form_with model: Article.new, local: true do |f| 5 %form.col.s12 6 .row 7 .input-field.col.s6 8 =f.text_field :title, class: "validate", id:"article_title" 9 =f.label :title 10 %form.col.s12 11 .row 12 .input-field.col.s12 13 =f.text_area :text, class: "materialize-textarea", id:"textarea1" 14 =f.label :text 15 =f.label :image 16 =f.file_field :image 17 .row 18 .row 19 =f.submit

フォームが二つあり、またsubmitがフォーム外となっている為ボタンを押しても反応しないことがわかりました。

rails

1.container 2 = form_with model: Article.new, local: true do |f| 3 %form.col.s12 4 .row 5 .input-field.col.s6 6 =f.text_field :title, class: "validate", id:"article_title" 7 =f.label :title 8 .row 9 .input-field.col.s12 10 =f.text_area :text, class: "materialize-textarea", id:"textarea1" 11 =f.label :text 12 =f.label :image 13 =f.file_field :image 14 .row 15 =f.submit

と書くことでフォームが一つにまとまり、submitもform内に収めることができました。

投稿2019/04/01 10:07

Doyaface

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問