jQueryをインストールする
Gemfileに以下を追加します。
gem 'jquery-rails'
Gemパッケージをインストールします。
$ bundle install
app/assets/javascriptsディレクトリのapplication.jsを変更します。
//= require rails-ujs //= require activestorage //= require turbolinks //= require jquery //= require_tree .
ページネーション機能を使う
Gemfileに以下を追加します。
gem "kaminari" gem "kaminari-i18n"
kaminariとkaminari-i18nをインストールします。
$ bundle install
kaminariをインストールすると、モデルのメソッドにpageメソッドが追加されます。
@users = User.page(5) @users = User.page(5).per(25)
Rails ユーザーのパスワードを保存するモデルクラス を作成する
Gemfileのbcryptのコメントを外します。
gem 'bcrypt', '~> 3.1.7'
bcryptをインストールします。
$ bundle install
Userモデルクラスを作成します。
$ bin/rails g model users
Userモデルクラスに、has_secure_password を追加します。
class User < ApplicationRecord has_secure_password end
マイグレーションファイルに、テーブルの項目を追加します。
このとき、暗号化したパスワードを保存する password_digest を追加します。
class CreateUsers < ActiveRecord::Migration[5.2] def change create_table :users do |t| t.string :email, null: false t.string :password_digest t.timestamps end end end
テーブルを作成します。
$ bin/rails db:migrate
railsコンソールを起動し、ユーザーデータを登録します。
$ bin/rails c > user = User.new > user.name = 'hikotaro" > user.email = 'hikotaro@example.co.jp' > user.password = 'zaq12wsx' > user.password_confirmation = 'zaq12wsx' > user.save
続けて、ユーザーのパスワード認証を試します。
> user.authenticate('cde34rfv') false > user.authenticate('zaq12wsx') #<User id: 1, name: "hikotaro", email: "hikotaro@example.co.jp", password_digest: "$2a$12$bWRsPGrzgCac0g0IYgjW8OXshnDwaEmoIcHeJ2AP3ot...", ....
リソースを扱うコントローラのアクション名
アクション | パス | HTTPメソッド | 説明 |
---|---|---|---|
index | /books | /GET | リソースの一覧を表示する |
show | /books/123 | GET | リソースを追加する |
new | /books/new | GET | リソースを作成する |
edit | /books/news/123/edit | GET | リソースの属性を表示する |
create | /books | POST | リソースを更新するためのフォームを表示する |
update | /books/123 | PATCH | リソースを更新する |
destroy | /books/123 | DELETE | リソースを削除する |
コントローラを作成します。
$ bin/rails g controller books
ルーティングを設定します。
resources :books
コントローラにアクションを追加します。
class BooksController < ApplicationController def index end def show end def new end def edit end def create end def update end def destroy end
Railsでデータベースを作成する
データベースを作成します
$ bin/rails db:create
Bookモデルクラスを作成します。
$ bin/ralis g model book
マイグレーションスクリプトを作成します。
db/migrateディレクトリ以下のxxxxxx_create_members.rbというファイルがあります。
このファイルをマイグレーションスクリプトといいます。
class CreateBooks < ActiveRecord::Migration[5.2] def change create_table :books do |t| t.string :title, null: false # 書籍名 t.string :author, null: false # 著者名 t.integer :price, null: false # 価格 t.timestamps end end end
マイグレーションコマンドを実行し、テーブルを作成します。
$ bin/rails db:migrate
Sqliteのコンソールを起動し、テーブルが作成されたか確認してみます。
$ sqlite3 db/development.sqlte3 sqlite> .tables ar_internal_metadata books schema_migrations sqlite> .exit
railsコンソールを起動します。
$ bin/rails c
Bookモデルを使って、booksテーブルにデータを保存してみます。
> book = Book.new > book.title = '吾輩は猫である' > book.author = '夏目漱石' > book.price = 880 > book.save