STUDY MEMO

学習のメモ書き

Ruby on Rails

<Ruby on Rails> slimを使うときに使うgemやサイト

slimを導入するときに使うgem gem 'slim' https://github.com/slim-template/slim htmlまたはhtml.erbをslimへ変換するgem gem 'html2slim' https://github.com/slim-template/html2slim generatorが生成するviewファイルをslimにするgem gem "slim-rails" h…

<Ruby on Rails> rails new時にPostgreSQLに対応させるようにする

いつも忘れるのでメモ。 以下のコマンドを実行することで、アプリ作成時に自動でPostgreSQLに対応するように、database.ymlをが作成される。 rails new アプリ名 —database=postgresql https://railsguides.jp/command_line.html#データベースとソースコード…

<Ruby on Rails> seedの分割

分割理由 DBの初期データ投入のためにseedファイルを使用したが、量が多いので分割して見やすくしたかった。 1の方法がスマートだが、2の方法も一応記入しておく。 共通 dbにseedsディレクトリを作成 $ mkdir db/seeds seedsディレクトリの下に任意のseedフ…

<Ruby on Rails > 開発環境で本番環境のようにerror画面を発生させる設定

忘れてたのでメモ # config/development.rb # Show full error reports. config.consider_all_requests_local: false true:デバッグ情報がHTTPレスポンスに出力され、コンテキストがRails::Infoコントローラによって/rails/info/propertiesに出力される。 d…

<Ruby on Rails> レイアウトテンプレートのデフォルトのhead

テンプレートファイルとは レイアウトテンプレートとは stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' csp_meta_tag: csrf_meta_tags: 参考:…

<Ruby on Rails> データベースの設定(postgresql)

データベースの接続方法 両方存在する場合 参考文献 データベースの接続方法 ・config/database.yml ・環境変数 両方存在する場合 提供された接続情報が重複している:環境変数が優先 提供された接続情報が競合している:環境変数が優先 両方存在していて、…

<Ruby on Rails> credentials.yml.encの設定方法

credentialsとは credentials.yml.enc 中身を見るコマンド 編集するコマンド アプリケーションからcredentialsを参照 参考文献 credentialsとは production環境用の秘密情報の管理をするためにRails5.2でcredentialsという機能が追加された。 これが導入され…

<Ruby on Rails> rails routesの対話型のフィルタリングツール peco

pecoとは シンプルな対話型のフィルタリングツール。 grepと異なり、入力しながら検索することができる。 公式の説明文 peco can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think a…

<Ruby on Rails> rails serverを立ちあげてページを表示した時に画面左上に出てくる表示について

背景 rails serverを立ち上げてページを開くと、左上にprofiler-resultの表示が出ていた。 これは何かということと、非表示方法を記載する。 profiler-resultを出すgem gem 'rack-mini-profiler', '~> 2.0' 公式での記載 Middleware that displays speed bad…

<Ruby on Rails> gem 'rack-mini-profiler'について

rack-mini-profiler RoRのパフォーマンス計測をするgem。 公式では以下のように記載されている。 Middleware that displays speed badge for every html page. Designed to work both in production and in development. GitHub - MiniProfiler/rack-mini-pr…

<Ruby on Rails> rubyのバージョン変更

gemfileのなかのバージョンが、自分の環境のバージョンと異なっていた。 そのため、指定アプリケーション内で使うバージョンを指定した。 $ bundle Your Ruby version is 2.6.6, but your Gemfile specified 2.6.4 1. rubyのバージョン確認 $ rbenv versions…

<Ruby on Rails> rails serverが切れないときの対処法

tmp/pids/server.pidのなかにある数字を削除 実行中のプロセスを確認 プロセス強制終了 メモ rails serverを起動しようとしたら、以下のようなメッセージがでた。 A server is already running. 〜〜〜 閉じるとき不具合があったのか、立ちっぱなしになって…

<Ruby on Rails> Wheneverについて

wheneverとは? wheneverの公式では以下のように記載されている。 Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs. Wheneverは、cronを書いたりデプロイするためのクリアな構文を提供するRuby gem、とのこと。 w…

<Ruby on Rails> Githubにgemをチェックインしない方法

.gitignoreへの設定 gemの保管先の指定 --path vendor/bundleをつけ忘れた場合 参考文献 .gitignoreへの設定 githubにgemfileとgemfile.lockをインストールしていることから、gem自体のインストールは不要。(push時とても重くなるなどの弊害がある) そのた…

<Ruby on Rails> ルーティング:shallowオプション

参考文献:Rails のルーティング - Railsガイド shallowオプション shallowオプションとは、深いネスト(入れ子構造)を避けるためにcollectionだけを親のスコープ下で生成させるオプションのこと。 idを含めないアクション(collection):index/new/create id…

<Ruby on Rails> content_forとyieldを使用したtitleの設定

titleの設定 1. ページタイトルを設定したいviewページの冒頭に以下を設定 contact_forで:titleに任意の語句を入れ、yield(:title)に渡す。 content_for(:title, ':titleに入れたい語句') # contact_forではなくprovideでも可 2. application_helperにpage_t…

<Ruby on Rails> migrationの管理

マイグレーションの実行 migrationの状態を確認 最新のversionを確認 状態確認 マイグレーションの実行 実行されていないchangeアタはupメソッドを実行する。 マイグレーションの実行順序は日付に基づく。 # マイグレーションを実行するrailsコマンド。db:sc…

<Ruby on Rails> Active Record の関連付け

belongs_to 作成されるモデルクラス 作成されるmigrationファイル 作成されるschemaファイル has_one has_one :through has_many has_many :through Physician視点 Appointment視点 Patient視点 has_and_belongs_to_many has_and_belongs_to_manyとhas_many …

<Ruby on Rails> 画像のアップロード

使用したgem 工程 1. carrierwaveとmini-magickをbundle install 2. uploaderを作成 3. uploaderファイルに以下を設定 4. カラムに画像を追加 5. form_withタグをviewファイルに記載 6. controllerのstrongパラメータを画像データを入力できるように設定 7. …

<Ruby on Rails> i18nでの日本語化

ja.ymlファイルを作成 ログイン画面、新規登録画面に設定 ja.ymlファイルを作成 config/locales/activerecord/ja.ymlを作成 ja: activerecord: attributes: user: last_name: 姓 first_name: 名 email: メールアドレス password: パスワード password_confir…

<Ruby on Rails> コントローラでのRails 国際化 (i18n) API使用

flashの文字を日本語で表示させた。 1.gemを追加し、bundle install gem 'rails-i18n' 2.config/application.rbに以下を追記(class Application < Rails::Application内) config.i18n.default_locale = :ja 3.config/locates/にja.ymlを作成し、以下を記載 j…

<Ruby on Rails> DBの初期化

以下のコードでrails consoleでテスト操作のためにDBに入力したデータを初期化することができる。 基本的にはフォームで入力されるのが望ましいので、rails consoleのデータは基本初期化する。 rails db:migrate:reset

<Ruby on Rails> DBの更新

DBの情報を更新したいとき、2つの方法がある。 パターン1 代入する 更新する情報を個別に代入する。 変数 = find(検索したいレコード番号) 変数.更新したいカラム名 = 更新後データ 変数.save パターン2 updateメソッドを使用する updateメソッドは、ハッシ…

<Ruby on Rails> findメソッドとfind_byメソッド

DBの情報を検索するときに使用するfindメソッドとfind_byメソッドの違いは、以下の通りである。 ・findメソッド 検索に引っかからなかった場合、errorを返す。 ・find_byメソッド 検索に引っかからなかった場合、nilを返す。

<Ruby on Rails> DBへ保存

パターン1 インスタンスを生成してから、saveをすることでDBの反映を段階的に行う。 変数 = モデル名.new(カラム名: データ) 変数.valid? #変数は有効か確認。有効であればsaveが可能。 変数.save パターン2 インスタンス作成とsaveが同時に実行される。 モ…

<Ruby on Rails> モデルの作成、削除、追加

モデルの作成、削除、追加 作成 削除 追加 参考文献 モデルの作成、削除、追加 作成 モデルを作成するときは、以下のcodeを入力。 rails generate model model名 カラム名:データ型 modelをgenerate後、dbのカラムを作成(migration file作成)するために、以…

<Ruby on Rails> find_byメソッド

特定のidを取得するときに使用するメソッド。 変数名 = モデルクラス名.find_by(id:値)

<Ruby on Rails> URLにid番号とページ情報を反映させる

routesファイルへの入力 gets "controller名/:id" => controller名.action名 controller名/:idという記載をすると、"/controller名/〜"という条件のURLが全て当てはまることになるので、 routesファイルに記載するとき、同一のcontroller名の記載のある箇所…

<Ruby on Rails> link_toを使用したリンク作成

ruby on railsではaタグをlink_toメソッドで表すことができる。 aタグ表記の場合 <a href = "/">文字列</a> link_toメソッド表記の場合 <%= link_to("文字列","/") %> 第一引数には文字列、第二引数にはURLが入る。

<Ruby on Rails> レイアウトをサイト全体に反映させる

views/layouts/application.html.erbファイルに、サイト全体に適応させたいレイアウトをheadタグやbodyタグに入力すると、全体に情報が反映される。 下記はbody欄に全体に適応させたい情報がある場合のコード。 <html> <head> </head> <body> #反映させたい情報 <%= yield %> </body> </html> <%= y…