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

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

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

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

Ruby on Rails

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

1回答

1176閲覧

devise機能で投稿できません

m-kobayashi

総合スコア0

Devise

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

Ruby on Rails

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2020/07/28 10:31

ここに質問の内容を詳しく書いてください。
Ruby on railsでブログ的なwebアプリケーションを作っております。
deviseを導入しておりますが、登録しているユーザーだけが投稿して保存できるようにしたいので、viewのusersフォルダーにindex, new, createアクションを入れております。
ログインユーザーのnewのview画面(投稿ページ)でsendボタンを押すとこのようなエラーが起きます。
また、form_withメソッドのモデルに@userと入力しております(本当は@productと入力したいのですがエラーがでます)ルーティングやコントローラーに問題がある可能性があります。

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

イメージ説明###

エラーメッセージ

該当のソースコード

イメージ説明
イメージ説明

view/users/new.html.erb <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"> <title>Gcoffee</title> </head> <div class="contents row"> <div class="container"> <%= form_with(model: @user, local: true) do |form| %> <h3>投稿する</h3> <%= render partial: "form", locals: { form: form } %> <% end %> </div> </div>
_form.html.erb <%= form.text_field :image, placeholder: "Image Url" %> <%= form.text_area :text, placeholder: "text" , rows: "10" %> <%= form.submit "SEND" %>

試したこと

ディレクトリの位置をusersからcoffeeディレクトリという別のViewファイルに移動しても同じエラーが起きております。

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

ここにより詳細な情報を記載してください。
'rails', '~> 6.0.0'
gem 'mysql2', '0.5.3'

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

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

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

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

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

daihi

2020/08/01 04:54 編集

ルーティングエラーが出ていますね。 routes.rbかviewが怪しいです。 `rails routes` の結果を見せてもらえますか??
guest

回答1

0

まず前提が間違っているのでそこを直しましょう。
手順としては
現在Userの作成ができていると思います。
なので次はPostの作成をしましょう。
controllerはPostsControllerです。
Postの作成ができたらそこをユーザーと紐付けます。
Postモデルのカラムにuser_idが保存できるようにしてcurrent_userで紐づけるなりします。
そうすることで登録しているユーザーのみ投稿できているということになります。

投稿2020/08/11 13:08

nasuk47

総合スコア311

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問