LoginSignup
1
0

More than 1 year has passed since last update.

新規登録画面を作成する

Posted at

新規登録で送信できるようにする

ルーティングでpostを作り、コントローラを設定すれば完成だったような気がする。

Routing Error

No route matches [POST] "/signup"

ルーティングを設定する

routes.rb
Rails.application.routes.draw do
  get '/',              to: 'home#top'
  get '/signup',        to: 'users#new'
  post '/users/create', to: 'users#create'
  get 'users/index',    to: 'users#index'
  get 'users/:id',      to: 'users#show'
end

これで設定。

usersコントローラーのcreateアクションを作成

name,email,passwordで登録

users_controller.rb
.
.
.
  def create
    @user = User.new(name: params[:name],
                     email: params[:email],
                     password: params[:password])
    @user.save
  end
.
.
.

これでいけるか?

Routing Error

No route matches [POST] "/signup"
ルーティングが一致しないらしい。
ルーティングのタイポか、調べよう。


Routing Error
No route matches [POST] "/signup"
'をつけてみよう。
知らないうちにエラーが消えていた。

ActiveModel::UnknownAttributeError in UsersController#create

unknown attribute 'email' for User.
users_controllerの中に知らない属性があるみたい
email属性がおかしいみたいだ。
データベースが何か問題があるのか?

確かめること

・rails sを一回閉じる
・データベースのカラムを確かめる

ここから先は学んだことであり人に伝えようとは思っていないので
うまく伝えきれない。

POSTリクエスト

POSTリクエストをすると次の画面にいかな行くてはならない。
そのためにrender,redirect_toを使わなければならない。
それをおこなっていないと
template_error(警告)が表示されない。

サーバーを閉じる

データベースをいじるとその時のサーバーを閉じなければならない。
そうしないと前のデータでしか応答してくれないから

SQL

idには一人一つ退会したからとその人のidを別の人に与えないことは大事

mysql> select * from users;
+----+--------------------+-----------+----------+
| id | name               | email     | password |
+----+--------------------+-----------+----------+
| 60 | ブイゼル           | hogehoge  |          |
| 61 | a           |           |          |
| 62 | a       |           |          |
| 63 | a       |           |          |
| 64 | あ                 |           |          |
.
.
.

学ぶことが多すぎる。これから頑張る。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0