chevron_left

メインカテゴリーを選択しなおす

cancel
utouto97
フォロー
住所
未設定
出身
未設定
ブログ村参加

2021/06/30

arrow_drop_down
  • rakeを使う

    Rakefile 試してみる 実行環境 シンプルなタスク 依存のあるタスク 引数をとるタスク Rakefile rubyのmakeがrakeです。 そして、ruby版のMakefileがRakefileとなります。 このRakefileには、Rubyを使ってタスクを記述し、rakeコマンドから実行することが可能です。 試してみる 実行環境 まずはrakeを動かす環境を準備します。 Dockerを使って、サクッと準備します。 docker-compose.ymlを作り、以下のようにします。 version: "3" services: ruby: image: ruby volumes: - .…

  • idをランダムな文字列にする

    はじめに SecureRandom uuid hex base64 Railsでidをランダムな文字列にする はじめに Railsを使っているとデータのidは、デフォルトでは整数の連番になります。 この場合、URLにパラメータとしてidを含む場合 (例えば、https://hostname/api/v1/article/123) に、idの数字を前後の数字に変えることで、ほかのデータに簡単にアクセスできてしまいます。 また、idの最大値でエントリ数がわかってしまいます。 一つ例を挙げると、ユーザーのidの最大値がわかれば、そのサービスのユーザー数がわかってしまいます。 このような理由から、id…

  • railsコマンドとrakeコマンド

    Rails のこと調べてたら、よくrakeコマンドなるものが使われていました。 しかも、rakeコマンド使うように書かれているところも、railsコマンドでできてしまいます。 この二つのコマンド、何なんだろうと思い調べてみました。 まず、railsコマンドですが、こちらは基本的には新規Railsアプリケーションの作成を行うコマンドのようです。 アプリケーションに最低限必要なフォルダやファイルが自動的に生成されます。 次に、rakeコマンドですが、こちらはRubyで記述されたビルドツールです。 データベースの作成やマイグレーションなどのデータベース操作を実行できます。 その他、ライブラリのバージ…

  • Rails で ToDo アプリをつくる⑨ (Rails 入門)

    ↓の続き utouto97.hatenablog.com 今回やること Herokuアプリを作成 Postgresの追加 アプリをデプロイする 今回やること ここまで作ってきたToDoアプリをHerokuにデプロイします。 Herokuはクレジットカードを登録すると、フリープランでずっと無料で使うことができます。 (クレジットカード登録済でフリープランでは、一か月あたり1000dynoもらえます。 これは、一つのアプリで1000時間分ということになります。 ということで、アプリ一つであれば無料でずっと使えます。) 会員登録とクレジットカードの登録は完了してる前提で、ここから先を進めていきます。…

  • Rails で ToDo アプリをつくる(Rails 入門)目次

    Railsの練習として、ToDoアプリを作って記事にしたので、その目次を作っておきます。 ソースコード github.com アプリ https://rails-todo--app.herokuapp.com/ 目次 ① どんなToDoアプリを作るか & 環境構築 utouto97.hatenablog.com ② ToDo一覧を表示する (CRUDのR) utouto97.hatenablog.com ③ ToDoの新規作成 (CRUDのC) utouto97.hatenablog.com ④ ToDoの削除 (CRUDのD) utouto97.hatenablog.com ⑤ ToDoのス…

  • Rails で ToDo アプリをつくる⑧ (Rails 入門)

    ↓の続き utouto97.hatenablog.com 今回やること フィルタリング機能の追加 今回やること 今回はフィルタリング機能を追加します。 ToDoの状態 (status) によってフィルタリングします。 すべて表示、In progressのみ、Completeのみ、の3パターンを実装します。 フィルタリング機能の追加 まずは,コントローラがパラメータをインスタンス変数に保存します。 indexアクションの中に追記してます。(pre_editアクションも) @filter = params[:status] 次に、フィルタリングようのボタンを設置します。 現在のパラメータに応じて、…

  • Rails で ToDo アプリをつくる⑦ (Rails 入門)

    ↓の続き utouto97.hatenablog.com 今回やること 編集用フォームの準備 編集用アクションの追加 今回やること 今回は、CRUDのU (Update) として、ToDoの内容の編集を実装していきます。 あらかじめ用意していたEditボタンに機能を実装していきます。 編集用フォームの準備 まずは、編集用のフォームを作ります。 ToDo一覧で、Editボタンを押すと、そのToDoが編集フォームに変わるようにします. はじめに、ルーティングを設定します。 GETメソッドで/:idにアクセスした場合、通常通りToDo一覧を表示しますが、idに対応するToDoは編集フォームを表示しま…

  • Rails で ToDo アプリをつくる⑥ (Rails 入門)

    ↓の続き utouto97.hatenablog.com Rails ストロングパラメータ require と permit ToDoアプリのソースコード変更 Rails ストロングパラメータ Rails には、ストロングパラメータというものがあります。 ストロングパラメータとは、安全性が検証されたパラメータということになります。 つまり、パラメータに不正な値がないかをチェックする必要があります。 そして、不正な値は無視します。 不正な値をチェックし、無視できるようにする理由は、マスアサインメント脆弱性による、意図しないデータの追加や編集が行われる可能性があるから、です。 参考: qiita.…

  • Rails で ToDo アプリをつくる⑤ (Rails 入門)

    ↓の続きです。 utouto97.hatenablog.com 今回やること ルーティングの設定 コントローラーのアクション追加 ボタンの追加(ビューの編集) 今回やること 今回は、CRUD の U をやっていきます。 ただし、ToDoの編集ではなく、ToDoの状態(status)を変更できるようにしていきます。 現在、'In progress' と 'Complete' の2状態あります。 これらを交互にトグルできるようにします。 基本的にやっていくことは前回と同じです。 ルーティングの設定、コントローラーのアクション追加、ビューを編集といった流れになります。 ルーティングの設定 まず、ルー…

  • Rails で ToDo アプリをつくる④ (Rails 入門)

    ↓の続きです。 utouto97.hatenablog.com 今回やること ルーティングの設定 コントローラーのアクション追加 ボタンの変更 今回やること 今回は CRUD の D (Delete) を実装していきます。 つまり、ToDoの削除ということになります。 ルーティングの設定 まずは、DELETEメソッドに対応するルーティングの設定を行います。 ルーティングなので、config/routes.rbファイルに追記します。 delete '/:id' => 'todos#destroy' idをURLで指定するようにしています。 コントローラーのアクション追加 続いて、ルーティングの設…

  • Rails で ToDo アプリをつくる③ (Rails 入門)

    ↓の続き utouto97.hatenablog.com 今回やること フォームの作成 ルーティングの設定 コントローラーのアクション追加 バリデーション 今回やること 今回は、CRUD の C (Create) をやっていきます。 つまり、ToDo の新規作成をできるようにします。 フォームの作成 まずは、新規 ToDo の情報を入力するフォームを作成します。 HTMLとBootstrapで、フォームを作ります。 ビューの app/views/todos/index.html.erbのToDo一覧の上に、↓のフォームを追加しました。 <form action="/" method="post…

  • Rails で ToDo アプリをつくる② (Rails 入門)

    ↓の続き utouto97.hatenablog.com 今回やること トップページを作成する コントローラーの作成 ルーティングの設定 ビューファイルの作成 ToDo モデルの作成 & テストデータ追加 ToDo 一覧を表示 コントローラーでデータ取得 ビューでTodo一覧表示 今回やること 今回は、CRUD の R (Read) ということで、ToDo の一覧を表示するところまでを開発していきます。 トップページを作成する まず初めに、タイトルだけのシンプルな HTML を表示できるようにしていきます。 そのために、 コントローラーの作成 ルーティングの設定 ビューファイルの作成 を行って…

  • Rails で ToDo アプリをつくる① (Rails 入門)

    Rails での開発の練習のために、数回にわたって、ToDo アプリをつくっていきたいと思います。 つくるもの 開発環境 環境構築 つくるもの ToDo アプリ CRUD を行う Create (ToDo作成) Read (ToDo一覧) Update (ToDo編集と完了処理) Delete (ToDo削除) ユーザー毎にToDoを管理する とりあえずは、ユーザーIDをパラメータで渡す (あとで、ユーザー認証を実装予定?未定です) デザインは Bootstrap を利用 開発環境 Ruby on Rails PostgreSQL Docker & Docker Compose Bootstr…

  • Git 入門②

    Git 入門2回目になります。 1回目は↓ utouto97.hatenablog.com Git の設定 ユーザー名とエールアドレスの設定 エディター エイリアス 設定ファイルの確認 Git の設定 Git の設定を確認したり、変更したりするには、以下のコマンドを使います。 $ git config リポジトリ内でのみ有効な設定となります。 オプションとして --global とつけることで、リポジトリとは無関係に、システム上のユーザー毎に設定をすることができます。 ユーザー名とエールアドレスの設定 各 commit には、そのコミットを行ったユーザーの名前とメールアドレスが記録されます。 …

  • Git 入門①

    Git の基礎をまとめていきます。 続きあるかわからないけど、ナンバリングしておきます。 Git とは 最も基本の流れ 1. ローカルリポジトリを作成 2. ファイルの新規作成・変更 3. ファイルのステージング 4. 変更を記録 5. 2.に戻る ファイルの管理状態を確認する Git とは Git とは、 分散型バージョン管理システム です。 つまりは、プログラムのソースコード等のファイルの変更履歴を管理するためのシステムです。 バージョン管理システムには、リポジトリと呼ばれる、ファイル等の変更履歴を記録するためのデータベースのようなものがあります。 そして、Git では、各ユーザのシステム…

  • docker-compose + Rails + PostgreSQL で環境構築する

    docker-compose を使って、Rails + PostgreSQL の開発環境を構築していきます。 用意するもの Dockerfile docker-compose.yml Gemfile Rails のインストール Rails のプロジェクト作成 database.yml の設定 Rails サーバー起動 用意するもの Dockerfile FROM ruby:3 RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg apt-key add - \ && echo "deb https://dl.yarnpkg.com/de…

  • WHERE句とHAVING句

    WHERE句とHAVING句 SQL の評価順序 サンプル WHERE句とHAVING句 WHERE句もHAVING句も、条件抽出を行うためのものです。 ただし、WHERE句とHAVING句では、用法が異なります。 WHERE句は、FROM によってテーブルから抽出されたデータに条件を適用します。 (WHERE句はGROUP BYより前に評価されます。) 一方、HAVING句は、GROUP BYによってグルーピングされた各グループに対して条件を適用します。 つまり、テーブルのデータ全体に対して、何か条件を適用したい場合はWHERE句を利用します。 (性別のカラムが'男'のデータだけ抽出する、な…

  • 外部キー制約

    外部キー制約について 外部キー制約 PostgreSQL で試す 外部キー制約 外部キー制約とは、2つのテーブル間の整合性を保つための制約です。 2つのテーブル A と B を考え、B が A を参照するカラムを持つとします。 そのとき、「B の A を参照するカラムは、対応するレコードが A 内に存在しなければならない」という制約を考えます。 これが、外部キー制約です。 例えば、2つのテーブル A, B を以下のように考えます。 A column_name type id integer name string B column_name type id integer a_id integ…

  • 内部結合と外部結合

    内部結合と外部結合ってどう違うのか、を調べたのでまとめていきます。 実際に、SQL操作をしながらやっていきます。 DB 準備 内部結合 外部結合 DB 準備 DB は PostgreSQL を利用します。 テーブルを二つ用意します。 記事 (articles) と カテゴリー (categories) テーブルです。 CREATE TABLE categories ( id SERIAL NOT NULL PRIMARY KEY, name varchar(255) NOT NULL ); CREATE TABLE articles ( id SERIAL NOT NULL PRIMARY K…

  • PostgreSQL 練習 (3)

    ↓の続きです。 utouto97.hatenablog.com SQL の練習問題を解いていきます。 問題は↓になります。 qiita.com 準備 問1 問2 問3 問4 準備 リンク先の Schema SQL を参考にテーブルの作成・データの挿入を行います。 CREATE TABLE users ( id SERIAL NOT NULL PRIMARY KEY, name varchar(255) NOT NULL, email varchar(255) NOT NULL, age integer NOT NULL ); INSERT INTO users VALUES (1, 'もっくん…

  • PostgreSQL 練習 (2)

    ↓の続きです。 utouto97.hatenablog.com SQL の練習問題を解いていきます。 問題は↓になります。 qiita.com 準備 問1 問2 問3 問4 準備 リンク先の Schema SQL を参考にテーブルの作成・データの挿入を行います。 CREATE TABLE employees ( id SERIAL NOT NULL PRIMARY KEY, name varchar(255) NOT NULL, department varchar(255) NOT NULL, hobby1 varchar(255), hobby2 varchar(255), hobby3 …

  • PostgreSQL 練習 (1)

    ↓の続きです。今回は問題を解いていきます。 utouto97.hatenablog.com 問1 問2 問3 問4 問5 問6 問1 性別が男である生徒の名前を一覧で表示せよ。 こんな感じの SQL 文を書きました。 SELECT name FROM students WHERE gender = '男'; 得られた出力は以下の通りです。 name ----------- 長岡 一馬 松本 義文 (2 rows) 参考: https://www.postgresql.jp/document/12/html/tutorial-select.html 問2 1教科でも30点以下の点数を取った生徒の…

  • PostgreSQL 練習 (準備1)

    前回、PostgreSQL について調べてみました。 そして、Docker を使って PostgreSQL サーバを構築し、 psqlコマンドで操作できるようになりました。 utouto97.hatenablog.com 今回からは、この PostgreSQL を使って、Qiita で見つけた SQL の練習問題に取り組んでいきたいと思います。 SQL 練習問題 データベース作成 テーブル・データの準備 SQL 練習問題 Qiita で見つけた SQL の練習問題というのは ↓ になります。 qiita.com この記事の中では DB Fiddleを使うとブラウザ上で簡単にSQLを実行できます…

  • PostgreSQL 入門

    リレーショナル型のデータベースの一つであるPostgreSQL 。 今まで触ったことないので、今回すこし調べてみました。 PostgreSQL とは Docker で PostgreSQL を試す PostgreSQL とは PostgreSQL はフリーでオープンソースな、オブジェクトリレーショナルデータベース管理システム (ORDBMS) です。 また、PostgreSQL はカリフォルニア大学バークレイ校で作成された POSTGRES パッケージの派生です。 データベース管理システム (DBMS) とは、データベースの運用、管理のためのシステムやソフトウェアのことです。 そして、オブジェ…

  • MVC

    rails も MVC です。 ところで MVC ってなんだったかな、ということで MVC について簡単にまとめていきます。 MVC とは Model View Controller MVC での Web ページ表示までの流れ MVC のメリット MVC とは MVC とはアーキテクチャの一種です。 つまり、設計するときの考え方のようなものです。 特に、UIをもつ場合に使われます。 (View が UI なので) そして、Model View Controller のそれぞれの頭文字をとって MVC です。 ちなみに、はてなブログだと 「MVC」 に下線が引かれ、クリックすれば MVC の意味…

  • Rails APIモード

    Railsを使った開発をしたいと思っています。 一方でフロントエンドに React や Vue を使いたいという気持ちもあります。 ということで、Rails でバックエンドの API サーバーを構築し、 フロントエンドは React や Vue を使っていきたいと思います。 そこで見つけたのが、Rails の API モードです。 API とは Rails の API モード API モードの設定方法 API とは APIとは、「 Application Programming Interface 」のアクロニムです。 外部とやり取りをする窓口にあたるもので、 機能の一部を外部に提供するのに使…

  • Ruby on Rails はじめかた

    Ruby on Rails 始めてみます。 とりあえず、Railsのインストールからサーバー起動して、「Yay! You’re on Rails!」を見るところまでやっていきます。 準備 Railsのインストール Railsプロジェクト作成 Railsサーバー起動 準備 Dockerの ruby:3 を使ってます。 Docker使わなくても、以下のものがあればOKです。 ruby をインストールしておきます。 バージョンはこれ $ ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux] bundler をインス…

arrow_drop_down

ブログリーダー」を活用して、utouto97さんをフォローしませんか?

ハンドル名
utouto97さん
ブログタイトル
うとうとしながら。
フォロー
うとうとしながら。

にほんブログ村 カテゴリー一覧

商用