v-crn Code Log

主に備忘録

Ruby on Rails

Rubyで変数が定義されているか確認する

defined? Rubyで変数が定義されているか確認するにはdefined?メソッドを使用する。defined?は引数として入れた変数やメソッドが定義済みであれば式の種別を表す文字列を返す。未定義であればnilを返す。 例 >> a = 1 >> defined? a => "local-variable" >> h…

ControllerのActionが表示するページごとにSCSSを設定する | Rails

app/views/layouts/application.html.erbのbodyタグにERBで次のように記述する。 <body class='<%= "#{controller.controller_name}_#{controller.action_name}" %>'> こうしておくと、たとえばStaticPagesControllerのHomeアクションのViewファイル「home.html.erb」に対してclass="static_pages_home"とクラスが付帯される。よって、このア</body>…

Railsアプリに包含・除外検索機能を実装する

目次 はじめに 前提 検索メソッド nil回避のためのreturn none 複数の検索語を配列に格納する 包含検索語と除外検索語を別々の配列に格納する 検索語を含んだ配列を曖昧検索の形式に合わせて整形する where likeで曖昧検索 実行例 Routes Controller 検索フ…

🍎Railsのformに絵文字を表示する🎉

"文字列".html_safeで表示できる HTMLで絵文字を表示したい場合、「HTML Entity」や「実体参照」と言われる形式で記述すれば普通は表示される。 &#x1f60e; ...... しかしRailsのformタグ内では素直に表示してくれず、実体参照はただの文字列として認識され…

NoMethodError | undefined method `offset' for #<Array:***> | Pagy

NoMethodError | undefined method `offset' for #<Array:***> | Pagy 状況 Pagyというgemを利用してページネーションを行うコードにおいてpagyメソッドに関する標題のエラーが発生しました。該当のコードは次のような構成です。 items = Post.where(['content LIKE ?',</array:***>…

Railsアプリにfavicon(タブ表示アイコン)を設定する

application.html.erbでfavicon_link_tagメソッドの引数としてapp/assets/images/に用意した画像のicoファイルを指定するだけでOKです。 app/views/layouts/application.html.erb <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'appli…

OmniAuthによるTwitter認証機能の実装 | Rails | Devise | email取得

前提 OmniAuthについて Twitter APIの準備 Developerアカウント登録 アプリの作成 Callback URL Terms of service URL / Privacy Policy URL 参考 Gemfile devise.rb user.rb deviseメソッドに:omniauthableを追加 User.rbにfind_or_create_from_authメソッ…

Rails Tutorial 第4版 第7章 演習 解答例

この文書はRails Tutorial 第4版 第7章 ユーザー登録の演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 7.1 ユーザーを表示す…

Rails Tutorial 第4版 第6章 演習 解答例

この文書はRails Tutorial 第4版 第6章 ユーザーのモデルを作成するの演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 6.1 Us…

Rails Tutorial 第4版 第5章 演習 解答例

この文書はRails Tutorial 第4版 第5章 レイアウトを作成するの演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 5.1 構造を追…

Solidusにウィッシュリスト機能を付ける

ECサイトに定番のウィッシュリスト。某有名ECショッピングサイトでは「ほしいものリスト」と呼ばれるアレです。Solidusではすでにウィッシュリスト用のGemが用意されているので、今回はそれを導入してみたいと思います。 ※本記事はSolidusでECサイトをつくる…

Rails Tutorial 第4版 第4章 演習 解答例

この文書はRails Tutorial 第4版 第4章 Rails風味のRubyの演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 4.1 動機 4.1.1 組…

Rails Tutorial 第4版 第3章 演習 解答例

この文書はRails Tutorial 第4版 第3章 ほぼ静的なページの作成の演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 3.1 セット…

Rails Tutorial 第4版 第2章 演習 解答例

この文書はRails Tutorial 第4版 第2章 Toyアプリケーションの演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 2.1 アプリケ…

Rails Tutorial 第4版 第1章 演習 解答例

この文書はRails Tutorial第4版第1章の演習に対する個人の解答例です。解答には誤りや不適切な表現が含まれていることがありますが、もし誤謬を見つけたらコメント頂けると嬉しいです。 それでは、やっていきましょう! 1.1 はじめに 1.1.1 前提知識 1. Ruby…

bundle exec rake db:やrails db:でmysql2関連エラー Segmentation fault at 0x0000000000000000

前提 ruby 2.5.3p105 rails 5.2.3 mysql2 0.5 経緯 DBとしてmysql2を指定したRailsプロジェクトにおいてbundle exec rake db:createやrails db:migrateなどデータベース関連のコマンドを打ち込むと次のようなエラーが出ました。 $ bundle exec rake db:reset…

bundle installでmysql2のインストールに失敗する

DBとしてMySQLを使用する予定のRailsプロジェクトにてbundle installコマンドを実行した際、mysql2のインストールに失敗してしまいました。ここにその解決方法をメモしておきます。 前提 Ruby 2.5.3 Bundler 2.0.1 コマンドとエラーメッセージ $ bundle inst…

Railsプロジェクトの新規作成手順

自分用の備忘録としてRailsプロジェクトの作成手順をここにまとめます。 前提 1. bundle init 2. bundle install --without production グローバルインストール(デフォルト) Gemの保存先をプロジェクト内のvendor/bundleに指定したい場合 3. bundle exec r…

bundle, Gemfile, Gemfile.lock

本記事はRubyプロジェクトが依存するGemを一括でインストールまたは更新する際に使うbundleコマンドについての解説です。 Bundler bundleコマンド bundle init Gemfileの新規作成 bundle install Gemの追加 インストールの流れ Gemfile.lockがない場合 Gemfi…

Heroku上のSolidus製ECサイトからAmazon S3に画像をアップロードする

Solidusで構築したECサイトの画像用StorageとしてAmazon S3を導入する方法を紹介します。 前提 Amazon Web Service(AWS)アカウント取得済み Heroku CLIインストール済み(brew tap heroku/brew && brew install heroku) ImageMagick*1インストール済み(sud…

RailsアプリをHerokuにデプロイする

RailsアプリをHerokuにデプロイする手順をまとめました。 前提 Herokuのインストール Herokuへのログイン アプリケーション枠の作成 アセットプリコンパイル コンソールにログを出力させる設定(Rails5では不要) Herokuへ送信 herokuへpushするときによくあ…

SolidusでECサイトをつくる

Solidusを利用してECサイトをつくる手順をまとめました。 Solidusとは 導入方法 前提 Railsプロジェクトの作成 Gemのインストール 管理者アカウントと商品サンプルデータの作成 ユーザー認証機能 エンジンの設定 DBのマイグレーション サーバー起動 動作軽量…