「Tep8」の版間の差分

提供: wikipokpok
移動先: 案内検索
(Flash メッセージ)
(Flash メッセージ)
66行目: 66行目:
 
DOM からメッセージを削除する
 
DOM からメッセージを削除する
 
  bin/rails generate stimulus removals
 
  bin/rails generate stimulus removals
 
HelloController削除
 
<nowiki>bin/rails destroy stimulus hello
 
 
削除
 
  import HelloController from "./hello_controller.js"
 
  application.register("hello", HelloController)</nowiki>
 
  
 
  <nowiki>// app/javascript/controllers/removals_controller.js
 
  <nowiki>// app/javascript/controllers/removals_controller.js
83行目: 76行目:
 
   }
 
   }
 
}</nowiki>
 
}</nowiki>
 +
 +
おまけ HelloController削除
 +
<nowiki>bin/rails destroy stimulus hello
 +
 +
削除
 +
  import HelloController from "./hello_controller.js"
 +
  application.register("hello", HelloController)</nowiki>
  
 
== 見出しタイトル ==
 
== 見出しタイトル ==

2023年6月3日 (土) 12:08時点における版

準備

create application

% rails new . --css=tailwind --css=sass --javascript=esbuild --database=postgresql
% bin/bundle add tailwindcss-rails
% bin/rails tailwindcss:install
gem 'devise', '~> 4.9', '>= 4.9.2'
% bundle install
% bin/setup

user

% bin/rails generate devise:install
% bin/rails generate devise User

Confirmableをコメントアウトする

% bin/rails db:migrate
# app/models/user.rb
:confirmable追記

Viewの追加

rails generate devise:views users

home

ホームを作る

% rails generate controller Pages home

homeコントローラーはパブリックなので、認証をはずす

# ユーザーがコンテンツにアクセスするには認証が必要で、共通のワークスペースに属するコンテンツのみが表示される必要がある
# ユーザーは、認証されていない場合でも、ホームページからサインイン フォームに移動できる必要がある
# アプリケーション全体のどこでもユーザーが認証されていることを確認する必要がある。
# ApplicationControllerDevise authenticate_user!メソッドで、これを強制できる

# app/controllers/application_controller.rb

  before_action :authenticate_user!, unless: :devise_controller? # コールバックに例外を追加

# app/controllers/pages_controller.rb

  skip_before_action :authenticate_user!

ルートパス

# config/routes.rb

  root to: "pages#home"

view更新

# config/initializers/devise.rb
config.scoped_views = true

ログイン後のパス

# app/controllers/application_controller.rb
def after_sign_in_path_for(resource)
  notes_path
end

Flash メッセージ

DOM からメッセージを削除する

bin/rails generate stimulus removals
// app/javascript/controllers/removals_controller.js

import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  remove() {
    this.element.remove()
  }
}

おまけ HelloController削除

bin/rails destroy stimulus hello

削除
  import HelloController from "./hello_controller.js"
  application.register("hello", HelloController)

見出しタイトル

% rails generate scaffold NameList name:string kana:string head:boolean line:integer buddhist_name:string alive:boolean birth:string death:string g_age:string memo:text generation:string
validates :name, presence: true
t.string :name, null: false
% bin/rails db:drop db:create db:migrate
% bin/rails test:system
% bin/dev

テストデータ

テストデータと開発データの同期

# db/seeds.rb

puts "\n== Seeding the database with fixtures =="
system("bin/rails db:fixtures:load")
bin/rails db:seed

note

% rails generate scaffold Note name:string kind:integer line:integer

user

gem 'devise', '~> 4.9', '>= 4.9.2
% bundle install
% bin/rails generate devise:install
bin/rails generate devise User
Confirmableをコメントアウトする
bin/rails db:migrate

view更新

# config/initializers/devise.rb
config.scoped_views = true

ログイン後のパス

# app/controllers/application_controller.rb
def after_sign_in_path_for(resource)
  notes_path
end

company

% rails generate model Company name

関連付け

% bin/rails generate migration add_company_reference_to_notes company:references
% bin/rails generate migration add_company_reference_to_users  company:references
% bin/rails generate migration add_note_reference_to_name_list note:references
bin/rails db:drop db:create db:migrate
% rails generate controller Companies new create