実践で学ぶRuby on rails 〜仮説千本ノック〜

プログラマーとして独立するため日々スキルアップに励んでいます。優れたプログラマは仮説を立てるのがうまい。そこを目指して仮説を立てては検証する日々です!!

applestoreとgoogleplayバッジを横に並べて配置したい

やりたいこと applestoreとgoogleplayの二つのバッジを横に並ベて配置したい。 問題点 googleplayのバッジは、周辺に余白を伴うため、両者のバッジ部分のサイズが同じであっても、余白の分ずれる。 解決方法 テーブルを使い、二つのバッジを同一のtrのtdにそ…

クラス名の決め方(囲み系)

やりたいこと 複数の要素を内包するブロックのクラス名には、 ・container(wrapper) ・inner ・outer ・content ・box などなど、様々なものが使われている。 それぞれのクラス名がどのようなケースで使用すべきなのか、明らかにし、クラス名の選択に迷わな…

placeholderのテキストが表示されない

解決したい問題 placeholderを設定したのに、「ここに名前を入力してください」等のテキストが表示されない。 解決方法 ケース別の解決方法は次の通りです。 ①font-sizeが0に設定されているケース placeholderで表示されるテキストの大きさはfont-sizeで設定…

inline-block要素間の原因不明な余白の消し方

やりたいこと 意図せずにinline-block間に生じた原因不明の余白(marginもpaddingも0にも関わらず)を取り除きたい。 実はこれ、正体は半角スペースなんです。 もっと言うと、inline-blockが二つ続けば、自動的に改行が行われ、その改行が半角スペースとして扱…

フレックスボックスで横並びにしたブロックレベル要素のwidthを調整

やりたいこと width1024pxのdivに子要素を2つ持たせ、フレックスボックスで横並びにして、子要素のwidthを調整したい 解決法 2つの子要素のうち、左にはpタグで囲ったimage要素、右にはdivで囲ったinput要素を置いた場合で、右のdiv要素の幅はどうなるのか…

paddingの設定(ヘッダー編)

□やりたいこと ヘッダー内ナビゲーションとウィンドウ枠のパディングを次の条件を満たすよう設定したい。 【条件】 ・ウィンドウの幅に関わらず、必ずヘッダーの左右に60pxのパディングを確保 ・ウィンドウの幅が最も広い時、60pxしかないと、ナビゲーション…

1日目 学んだこと

□sectionタグの使い方 sectionタグは、コンテンツ内の章、節として使いましょう。 サイトの要素は大体これに該当するので、しょっちゅう使います。 よくariticleタグとの比較で説明されますが、 sectionタグはあるコンテンツの一部(章など)、articleは、それ…

gemのバージョン指定ってどんな時に必要なの?

はじめに gemfileでインストールするgemを記述する際、バージョンを指定することがありますが、その結果何が起こるのか、どういう時にバージョンを指定すべきなのか、いまいちピンとこなかったので調べてみました。 # 5.2.3以上、6未満のものしかインストー…

Gemfileで環境ごとにgemを指定する

はじめに gemは、development環境だけで使いたいものもあれば、debelopmentはもちろんtestでも、productionでも全部の環境で使いたい場合もあります。 ここでは、環境ごとにgemを使い分けるための方法を紹介します。 source 'https://rubygems.org' git_sour…

本番環境secret_key_base生成時のエラー

railsの本番環境にて、 Cokkieの暗号化に用いる文字列secret_key_baseを作成します。 作成コマンドを実行 [ec2-user@ip-172-31-23-189 <リポジトリ名>]$ rake secret 成功時には、secret_key_baseの文字列が表示されるのだが、 エラーが発生 cound not find …

ECサイト作成〜はじめに〜

RailsでECサイトの開発するにあたり、 まずは、サイトはどう使う(操作する)ことを想定しているのか整理します。 この作業を通じて、何(DB、コントローラ、アクション、ページ)を作る必要があるのか、明確にしていきましょう。 〇基本的な機能 ・ユーザー登録…

AWSを使ったデプロイ〜S3にファイルをアップロードする〜

S3にバケット(保存先)を用意する データが保存される場所であるバケットを作成します。 名前とリージョンを決める必要がありますが、 名前は、バケットにアクセスするためのURLとして使われるため、一意である必要があります。 リージョンは、バケットが存在…

AWSを使ったデプロイ〜S3を使用するための準備〜

S3を利用する際のセキュリティ対策 従量制サービスであるS3は悪意のあるユーザーに操作されることで高額請求される可能性があり、パスワードを漏洩しない、したとしてもパスワードだけでは操作できないようにする等の工夫が必要です。 今回は、下記の三つの…

AWSを使ったデプロイ〜Capistranoによる自動デプロイ〜

デプロイするには、以下のような作業が必要で、様々なコマンドを実行する必要がありますが、一度Capistranoによる自動デプロイの設定を行えば、ローカルにおいて、コマンドを一つ実行すればすべての作業が自動で実行できます。 ▫️ローカルからリモートリポジ…

AWSを使ったデプロイ〜WEBサーバーNginxの導入〜

サーバにはWEBサーバとアプリケーションサーバがあります。 ブラウザからサーバにリクエストがあった場合、 静的コンテンツならWEBサーバがレスポンスとして返して終わり。 動的コンテンツなら、WEBサーバがアプリケーションサーバに生成を依頼する。アプリ…

AWSを使ったデプロイ〜unicorn起動・アセットファイルのコンパイル〜

アプリケーションサーバ「unicorn」の起動 EC2で、コードをクローンしたディレクトリに移動した上、 unicorn_rails(ローカルでいう「rails s」)でunicornを起動する。 [ec2-user@ip-172-31-23-189 ~]$ cd /var/www/[リポジトリ] [ec2-user@ip-172-31-23-189 …

AWSを使ったデプロイ〜ポートの解放〜

ポートの解放 EC2はデフォルトでは、SSH接続のみ可能で、HTTP等の他の通信方法では接続できず、WEBサーバとして未完成です。 そこでポートをHTTP等でも接続できるよう解放します。 ポートの設定にはEC2のセキュリティグループという設定を変更します。セキュ…

AWSを使ったデプロイ~環境変数の設定

環境変数の設定 データベースのパスワード、秘密鍵など、生のデータを記述して、githubにアップロードできない場合は、変数に代入して、アップロードするファイル上は変数を使って利用する。 これを特に環境変数と呼ぶ。 secrets.ymlやdatabase.yml等のRails…

AWSを使ったデプロイ~EC2メモリ拡張・bundlerのインストール~

EC2の無料枠は、処理速度を決めるメモリが貧弱であり、gemのインストール時等にエラーが発生する可能性があるため、メモリを増強する必要があります。 メモリの増強(Swap領域の用意) パソコンが処理を行う際、メモリに一時的に処理内容が記録されるが、処理…

AWSを使ったデプロイ~unicorn設定・コードのコピー~

アプリケーションサーバとは、ブラウザからのリクエストを受付、実際にRailsアプリを動作させるソフトウェアのこと。 ローカルでrails sコマンドで起動していたのが、pumaというアプリケーションサーバ。 アプリケーションサーバーが動いていれば、ブラウザ…

AWSによるデプロイ~EC2にコードをクローンする準備~

EC2にアプリのコードをクローンする前の準備 アプリを公開するにあたり、EC2は全世界に公開できるIPアドレスを持たせてあるので、コードをEC2クローンする必要があります。 ▫️GithubにSSH秘密鍵を登録する EC2サーバから、クローンするための接続をGithubに…

AWSを使ったデプロイ~DB設定~

Ruby on railsのような、WEBアプリケーションフレームワークにとって、DBは必ず必要になります。アプリに関連する全てのデータを保存する場所が必要だからです。 今回は、DBの中でも、リレーショナルDBを用いることとし、リレーショナルDBを管理するソフトで…

AWSを使ったデプロイ〜必要なプログラムのインストール~

EC2インスタンスは、作成しただけでは、サービスを公開する環境としては未完成です。 ここからは、環境設定を行います。 ツールのアップデート・インストール ▫️アップデート ssh接続した状態で、元々EC2インスタンスに含まれるプログラムを、yumというプロ…

AWSを使ったデプロイ~EC2のセットアップからログインまで~

AWSを使ってデプロイをするには、 こんな作業が必要になります。 リージョンの設定 まず、世界各地に設置されているAWSサーバのいずれを使用するのか選択します。 リージョンを選ぶ基準は以下の3点となります。 リージョンごとにいずれも異なりますが、大体…

RubyのフレームワークRuby on railsを使ってアプリを簡単に作る

Rubyでアプリを作る際、 たくさんあるフォルダの構成を考えて、 ファイルを自分で用意する必要はありません。 フレームワークを使えば、 次のコマンドを実行するだけで、基本的なものが作られます。 あとは必要なものを追加すれば良いのです。 ターミナルを…

Sprockets::FilenotFound in 〇〇#〇〇

サーバ再起動で解決。 原因 gem追加前にサーバを立ち上げてしまっていた場合、 追加後に、再起動が必要となる。

大した理由が書いてないエラー

・load error 単に〜のファイルが読めませんでしたみたいな時。 ファイルの名前が打ち間違えてたりします。

変数に@をつけるかどうか

グループID情報が必要なパスには、末尾にカッコ書きで情報を付与します。 redirect_to group_messages(group) redirect_to group_messages(@group) ここに@をつけるるかどうか、迷う方がいると思います。 前提として、コントローラーで@groupを定義している…

間違ったインデントによるエラー

・プレーンテキストの次の行でインデントをしてしまった エラー文 illeagl nesting:nesting within plain text is illeagl. 単なるテキストデータの次に書くものをインデント下げちゃだめ!! %ul.main-header__left-box__member-list Member: - group.users…

ビューにif文は書かない

ビューにif文の条件分岐コードは書かないようにしましょう。 長いコードで汚れてしまうから。 if文の定義はモデルファイルで行い、 メソッド名を、ビューファイルに書きましょう。