2019-10-01から1ヶ月間の記事一覧

【Docker】用語整理

先日からDockerに手を出したのですが、初学者なもので大量の新しい用語の整理が付かない状態です。 言葉の定義がわからないと、何がわからないのかわからないと言った状況に陥りやすいので自分なりに整理してみました。 イメージ…コンテナーを作成するために…

【AWS】EC2+RDSでRailsアプリを動かすメモ

あくまで学習の一環としてのメモ。 VPCの作成 まずはVPCの作成。 CIDRブロックは10.0.0.0/16で。 EC2用のサブネットを作成 EC2用なので、外部と通信できるサブネットを作る。 CIDRブロックは10.0.0.0/24 インターネットゲートウェイを作成 EC2用のサブネット…

【AWS】EC2でsshを用いてgit cloneするまで。

EC2環境でsshを用いてgit cloneするまでをメモしてみました。 $ cd ~/.ssh $ ssh-keygen -t rsa 名前の入力を促されるのでgithub_keyとでもしておく。その後は2回エンター押す。 $ vi config Host github HostName github.com User git IdentityFile ~/.ssh/…

【AWS】S3を簡易的なWebサーバーとして機能させるメモ

AWS

AWSのマネージドサービスであるS3を簡単なWebサーバーとして機能させるメモになります。 あくまで学習の一環です。 S3のファイル置き場のことをS3バケットと言います。 ダッシュボードでの設定 S3のダッシュボードで、作成を押す。 パケット名(ドメイン名で…

docker-composeの書き方メモ

とりあえず初心者なりに、用語を調べながらなんとかdocker-composeを理解できそうです。 これからも使うことになるので、メモとして説明を入れながら書いてみました。 version: '3' #docker-composeのバージョン指定 services: #各コンテナの設計を書いてい…

【Docker】用語整理

先日からDockerに手を出したのですが、初学者なもので大量の新しい用語の整理が付かない状態です。 言葉の定義がわからないと、何がわからないのかわからないと言った状況に陥りやすいので自分なりに整理してみました。 イメージ…コンテナーを作成するために…

【Devise】Twitter連携ログイン時、メール認証を回避する。

Twitter連携を使用し、ログインした場合Twitterを伝って持ってこれる情報にはメールアドレスはありません。 なので認証するときはダミーのメールアドレスを生成し、それをメールアドレスとして設定していたのですが、Deviseのメール認証をオンにしているとダ…

Githubから特定のファイルの履歴を消すメモ

本来、環境変数として設定してプッシュしなければいけなかったファイルを誤ってプッシュしてしまったときなど、そのファイルの履歴はずっと残ってしまうので、APIのKeyやらが全世界に公開されてしまいます。 先日その過ちを消すことに成功したのでメモ。 ま…

【Rails】form_withで作成したselectのoptionタグに初期値を設定する。

f.selectで作成したセレクトボックスを使って検索機能を採用しているのですが、検索するたびにセレクトボックスの値が初期値になると何かと不便です。 選択した値をページが切り替わっても保持するため、初期値にそのセレクトボックスのparamsを代入し、結果…

【Rails】中間テーブルで2つのidの組み合わせ重複したとき無効にするテストを書く

バリデーションを書く validates :user_id, :uniqueness => {:scope => :book_id} 一応migrationファイルにもt.indexを使ってDB側で同じ組み合わせが重複しないようにはしているけど、バリデーションとしてエラーを出せるように書いてみた。 こうすることで…

【RSpec】user_specのメモ

昨日初めてRSpecに手を出しました。 そこで気がついたんですが、もっと早くやっておけば良かったと思います。 多分そこらへんはコードとテストをどっちを先に書くかみたいな話にもなるとは思うのですが、僕自身、ポートフォリオを作成中で、最低限の機能を追…

【Rails】楽天BooksAPIで新刊を抽出する

残念なことに楽天APIでは入力パラメーターに発売日を指定して検索をかけることはできないみたいなので、無理やり新刊を検索するコードを書きました。 入力可能なパラメーターはいくつかありますが、その中でも出版社毎に新刊を抽出します。 def download @pa…

【Rails】ActiveRecord:Relationをeach do内でまとめる

特定の検索ワード等が複数あって、それをeach do内でwhereを用いて引っ張ってきたものを、ある配列にまとめる処理を繰り返す感じになります。 @books = [] @findbooks.each do |book| comics = Book.where("title LIKE ?", "%#{book}%") comics.each do |com…

【Rails】formのselectにclassが設定できない問題

form_forで書いていたものをform_withに修正したところ、classに書いたBootstrapが反応しなくなりました。 f.select :month, options_for_select(['10', '11', '12']), class: "form-control" 本来ならform-controlを指定したので、デザインがBootstrapのそ…

Bootstrapの折り畳みのhrefに特殊文字を使うにはエスケープもしくは置き換える必要がある

https://cccabinet.jpn.org/bootstrap4/components/collapse 上に書いてあるような折り畳み機能を仮にeach do内で使うとすると思わぬ動作不良が起きました。 本のシリーズ名をボタンにして、そこを押すとそのシリーズの本が出てくるというものを作っていたの…

【Rails】Deviseを使用したユーザー登録認証メールの設定

Deviseのインストールやログイン周りの設定は既に完了している前提。 ユーザー登録時に、登録したメールに認証用のリンクを送信し、本当にメールが合致するかどうかの認証を作ってみます。 user.rbに追記 devise :database_authenticatable, :registerable, …

【Rails】かんたんログイン機能の実装

なんらかのWebアプリを作るとき、面接で使うポートフォリオ用の場合だと、かんたんログイン機能というワンクリックでログインできる機能があると何かと便利です。 ということで簡単にかんたんログイン機能を実装してみたので、記録しておきます。 既にログイ…

【Rails】簡単なAjax(非同期通信)を実装する

いいね機能を例に簡単にAjax機能を追加してみます。 Ajaxの概要 サーバーと通信したときに、ページ遷移を行わず指定した一部分だけを変更する処理のこと。 何らかのボタン等を押して、リクエストを送ったときに 本来ならば設定したerbやhamlをレンダリングす…

【Rails】deviseとomniauthでTwitterログイン機能を作るメモ

既にdeviseで普通のログイン機能は作っている前提のメモ。 Gemのインストール gem 'devise' gem 'omniauth-twitter' $ bundle install TwitterAPIkeyを入手するためにDeveloperに登録 https://developer.twitter.com/en/apps 初めて利用するときは、とりあえ…

【Rails】ハッシュを並び替える

ハッシュを並び替える。 基本、sortメソッドを使用する。 使い方 ハッシュのキーをソートするとき hash.sort ※降順の場合は hash.sort.reverse と、後ろにreverseを付ける。 ハッシュの値でソートするとき hash.sort_by{ | k, v | v } sort_byを使う。 kがキ…

マザボを交換後、vagrant upがprivate keyで止まる問題

実は先日、散々な目に合いまして、マザーボードを交換しました。 まあ交換したマザーボードは初期不良が発生していて、メモリが4枚させるはずが2枚しかさせないという状況で仕方なく利用しているわけですが… 次の休みにでも返品しに行こうと思います。 さて…

ファンが回り止まりの繰り返しでPCが起動しなくなった問題。後編

前回の続きです。 tkmrtech.hateblo.jp マザーボードの交換 もうその日は20時になりそうな閉店時間でした。 ギリギリでお店に駆け込み、自分が使っているCPUの型番を伝えて、なんとか動くマザーボードを購入。 長かった一日がやっと終わる。 そんな風に思っ…

ファンが回り止まりの繰り返しでPCが起動しなくなった問題。前編

普段はWeb系の勉強ブログなんですが、恐らく人生でこれ以上不幸に不幸が積もった天文学的確率不幸が起こるのはほぼなさそうなので、書いておきます。 そもそもこれのせいで2日ほど勉強できなかったですし。 ある朝のことでした。 いつもと同じ時間に起床、机…

Railsで多対多のお気に入り機能を作成する

もう何度も作成していますが、未だにややこしく、ググったりしているので一度まとめようと思いました。 まず、小文字大文字、複数形などが整理できていないときは確認する。 qiita.com 中間テーブルの作成 rails g model Subscribe user:references book:ref…

APIから持ってきた日付データが文字列型だったときの解決策

楽天BooksAPIからは本の発売日を文字列として抽出することができます。 しかし実際に扱うとなると文字列だと使い勝手が悪かったので、あくまで自分のアプリを作成する上での解決策を記しておきます。 結論から言うと、正規表現で弄って、int型にするだけ。 …

BootstrapのCollapseをeach do内で扱う

下記のようなBootstrapのCollapse(折りたたみボタン)を利用する場合、 折り畳み~Bootstrap4移行ガイド each do内だと、上のボタン式例でいうcllapseExampleの部分はcollapse<%= key %>などとする必要がある。 <% book.each do|key| %> <p> </p>

【Rails】belongs to関連のデータがsaveされないとき

ちょっと悩んでしまったので備忘録。 結論から言うとデフォルトでnilは許可されていないのが原因でした。 belongs_to :book, optional: true というように後ろにoptional: trueをつけることでnilを許可させることが出来ます。 どうやらrails5からはデフォル…

楽天APIで在庫状況に関わらず全て表示するときの注意点

現在楽天BooksAPIを用いてWEBアプリケーションを開発しているのですが、割としょうもないことで悩んでいたので、備忘録として書いておきます。 まず楽天APIにはoutOfStockFlagというサービス固有パラメータが存在しており、これの値を0か1に変更することで、…