箱のプログラミング日記。

えんじにあ奮闘記

RailsでjQueryを最初に使う時にやること

gemをインストール gem "jquery-rails" bundle installとサーバーの再起動を実行 application.jsを編集 app/assets/javascripts/application.js に以下の二行を記述 //= require jquery //= require jquery_ujs //= require jquery //= require jquery_ujs /…

enumの使い方【Rails】

enumとは railsの場合は標準機能としてモデルに記述することで使うことができる。 セレクトボックスから選ばせた値をDBに保存する時などに便利 わざわざDBにテーブルを作って保存しておくほどではない静的なデータも ユーザーに任意の値を入力させたり、いく…

カラムにreferencesの指定ができない【MySQL文法エラー】

カラムに外部キー制約をつけようとしたところうまくいかなかったので、 解決方法を残しておこうと思います。 実現したかったこと postテーブルを作成後、複数のカラムを追加 その際、外部キー制約を設定するカラムが含まれていたが、エラーになる テーブルは…

scssの便利な使い方【mixin】

scssでmixinを使用して関数定義する方法について だいぶリファクタリングができるようになってきたので記事にします。 scssとは 体感的にはcssのように書くことができる ネストさせて書いていくので、BEMの原則と相性が良い 例えば <div class="post-content"> <div class="post-content__title-box"> <h1>scssはとても便利です</h1> </div> </div>…

Railsの命名規則【単数形・複数形】

基本原則 コントローラー・・・複数形 モデル・・・単数形、先頭大文字 で作成すると言うのはおなじみ。 $ rails g controller users $ rails g model User 複数の単語を繋げたい場合 コントローラーの場合はアンダーバーで繋げる モデルは大文字で繋げる $ …

テキストを折り返し表示【CSS】

CSS

HTMLを書いていて、例えばpタグの中の文章を改行させたい場合 おはようございます。 今日の天気は雨です 明日は晴れです <p>おはようございます。</p> <p>今日の天気は雨です</p> <p>明日は晴れです</p> pタグはブロック要素なので、pタグで囲まれた要素は一行を占領する。 つまり…

prefixでidを複数持たせる方法【ルーティング】

今まで何となくしか理解できていなかったルーティングですが、 自分でアプリケーションを作るようになるとそういうわけにもいかず。 きちんと勉強しまくったところ、深いところまで知ることができたので きちんと残しておこうと思います。 固有のアクション…

carrierwaveで複数画像投稿【Rails】

レビューサイト作成にあたり画像の複数投稿を実装したので carrierwaveの使い方を買いておこうと思います。 ①gemをインストール gem 'carrierwave' gem 'mini_magick' $ bundle install 今回はmini_magickを使って画像の加工(リサイズなど)も実現したいの…

Mechanizeでスクレイピング【Rails】

Mechanizeというgemを使用してスクレイピング(外部サイトから情報を取得する)を行う手順を書いていきます。 ①Mechanizeをインストール gem 'mechanize' $ bundle install ②model配下にscraping.rbを作成 今回はスクレイピングで取ってきた要素をデータベー…

GitHubでリポジトリの作成とアプリケーションの開発

新しくアプリケーションを作る時に、同じく新しくGitHubのリポジトリを作ることになると思います。 おそらく慣れてしまえばブログに残すほどのことでも無いかもしれませんが、 現段階ではまだ数回しかリポジトリの作成をしておらず、今後流れが分からなくな…

jQueryのメソッド【引数】

jQueryの基礎を勉強したので、思考の整理のために残しておきます。 jQueryとは jQuery(ジェイクエリー)は、ウェブブラウザ用のJavaScriptコードをより容易に記述できるようにするために設計されたJavaScriptライブラリである。 (Wikipediaより) JavaScri…

link_toと仲良くなりたい

link_toに死ぬほど苦しめられた私。 仲良くなるためにきちんと向き合って勉強してみました。 link_toとは Railsのヘルパーの一つ。HTMLで言うaタグに当たる。 その名の通り、どこかにリンクを飛ばしたい時に使うことができる。 Railsでは、HTMLのタグを使う…

単体テスト、統合テストの違い

テストとは アプリケーションを開発環境から本番環境に移す前に、 それまで書いたコードが正常に動作するかどうかを確認する作業のこと。 ユーザー登録、投稿機能が備わっているアプリケーションとかって 自分で登録してみて動作確認をする、っていう事しか…

form_forの書き方・使い方

form_forがなかなか理解できず、いつもコピペでしたが ついにしっかり理解しなきゃいけない日が来たので、ざっと調べてみました。 form_forの基本構文 <%= form_for(@article) do |f| %> ~~中身~~ <% end %> form_forはRailsのヘルパーのひとつで、 HTMLで言…

Railsでアプリケーションを作る【最初の作業】

まだ初心者ですが、Railsで簡単なアプリケーションを作れるくらいのレベルにはなったので、 多分初学者がつまづきやすい(というか忘れがちな) 「アプリケーションを作るときの最初の第一歩」をまとめておこうと思います。 ※RubyやRailsの開発環境が整って…

form,input,labelの違いを改めて

今までhtmlのformが苦手であまり理解できていませんでしたが、 今日labelも含めてかなり理解度が高まったので残しておきます。 formタグ ユーザーに何かを入力させたり、情報を送信させたい時に使う。 formタグで囲まれた要素の中に、それぞれの入力欄やボタ…

githubの使い方【概念】

共同開発において避けて通れない、githubについて 初学者向けにまとめておきたいと思います。 まず、gitとは ローカル環境で開発したソースコードなどの作成・編集履歴をリモートのリポジトリに保存しておくことができる仕組みのこと。 自分のPC内のデータを…

calc()の使い方【CSS】

CSS

CSSでレイアウトを指定したい時、 heightやwidthに対して一般的に使うのはpxとかですが、 便利に使えるcalcというものがあります。 width: calc(100% - 150px); たとえば親要素に対て二つの子要素があり その二つが横並びになっていたとします。 通常だと、…

部分テンプレートとrenderの使い方

renderとは 部分テンプレート化する時に使える。 複数のページで共通して使われるレイアウト部分がある場合、 そのhtmlを各ファイルでいちいち記述するのは面倒臭いし、美しくない。 そこで、その共通部分を抜き出し、独立したファイルとして作成し、 それを…

モデルに書くゲッターの使いどころ

まだRubyとRailsの学習を初めて3週間程度の初学者ですが、 今日「初学者ならではの目線」である疑問が浮かびました。 def review_average reviews.average(:rate).round end 何かの値を返してくれるだけのために定義するメソッドをゲッターと呼びますが、 …

N+1問題とは

N+1問題について、なかなか理解できなかったのですが 今日やっと理解できたので、残しておきたいと思います。 N+1問題はデータベースの話 N+1問題は「includes」によって解消できる 「includes」はモデルに対して使うメソッド コントローラーのアクション内…

form_tagの基本構造と使い方

form_tagの基本構造と記述の仕方について、使い方をよく理解していなかったのでまとめました。 form_tagとは railsでアプリケーションを作成する際のヘルパーメソッドで、 HTMLで投稿フォームを作成するよりも簡単に作ることができ、 セキュリティ面でもform…

よくあるRailsのエラーとその対処法

よくあるエラーとその対処法についてまとめました。 syntax error No Method Error Pending migration error Temolate is missing Routing Error 以下、それぞれのエラーの内容と対処法です。 エラーっぽく赤で表示していきます笑 1.syntax error 意味 Ruby…

position: absolute; がうまく使えない

CSS

HTMLで要素を絶対配置したい時に使う「position: absolute;」ですが、 いつも使い方があやふやで迷った結果思い通りに配置されないことが多いので、まとめておきます。 そもそもの用語の意味 position: relative; (相対的な) position: absolute; (絶対的…

devise導入方法

deviseのインストールからモデル生成までの流れをまとめました。 Gemファイルに「gem 'devise'」と追記 $ bundle install $ rails g devise:install $ rails g devise:views $ rails g devise モデル名 $rake db:migrate サーバーの再起動 1.Gemファイルに「…

HTMLにおける<i>タグの使い方

HTMLにおける<i>タグの使い方 <i>タグを初めて見かけて、これはなんぞやと思ったので残しておきます。 <i>タグは、一般的に人の声や心情を表したい時に使うもの。 「i」は「italic」の意味で、<i>タグで囲まれた部分はブラウザで結果的に斜体で表現されます。 ただ、用途</i></i></i></i>…

「1:多」の関係性

「1:多」の関係性とは 例)ツイッターの場合 ユーザーがツイートをすると、そのツイートに対してコメントが投稿される。 この時、 ツイートが複数のコメントをもち、一つのコメントは必ずどれかしらのツイートに所属している関係性が成り立つ。これをプロ…

マイグレーションファイルの作成・実行

新しくテーブルを作りたい railsでのアプリケーション開発に当たって、新しくテーブルを作成したい時は、以下の手順で行う。 ①モデルの作成(≒テーブルの作成) ②生成されたマイグレーションファイルの編集 ③マイグレーションの実行 ①ターミナルから以下のコ…

deviseとかgemって何だろう

deviseとは? deviseとは、railsによるアプリケーション開発を楽にしてくれるGemの一種。 Gemというのはrailsでの開発を楽にしてくれるソフトウェアたちのことを指す。 インストールすると使えて、オープンソース(=誰でも使える)。 railsを使う人たちが作…

メソッドってそもそも何のために使うの?

メソッドとは何なのか Rubyにおけるメソッドの考え方が難しくて、概念を理解するまでに何度もつまづいたので残しておこうと思います。 どういう時にメソッドを生成するのか ⇨何かの値を定義したい時。 それなら、変数でいいのでは? ⇨変数だと、変数に代入さ…