かっちゃんの日記

初めまして!自営業(タイヤの卸売)をやってます。新規事業としてアプリ開発に興味がありプログラミングを勉強中です。日々の学びを発信していきます。よろしくお願いします。HTML/CSS/haml/sass/Ruby/Ruby on rails/Javascript/Jquery/Git/GitHub/データベースとSQL/統合テスト/AWS

2019-01-01から1年間の記事一覧

【アプリ開発エラーメモ】外部キーをDBに保存する

今制作してるアプリで、DBに登録した情報 + 登録者(current_user)を加えたかったのですがエラーを起こしたのでメモします。 まず私のミス ストロングパラメータにcurrent_user.idと書いたら一緒にDB入るだろうと思ってましたがむりですね、思考停止してま…

【アプリ開発エラーメモ】DBにparamsが入らない

結果から言うと、外部キーを持っているテーブルだったのですが、optional:trueが抜けてました。 paramsがcreateアクション内で取得できるのに、データベースに入らず、作業が詰まってしまいました。 デバックしてparamsの中身を見ると、 ・permitted: false …

【アプリ開発エラーメモ】 deviseのインストールの手順を間違えた時の対処方法

deviseのインストール手順を間違え、エラーが起きたので対処方法をアウトプットします 正しい方法 1deviseの導入(gem fileに書いて、$bundle install) 2ローカルサーバー再起動 $ rails s 3 $rails g devise:install (deviseの設定ファイルを設定) 4…

【BEM】HTMLのクラス名を簡単につける

https://chkc.hatenablog.com/entry/2019/08/10/124430 Sassについて書いた記事の続き。 BEMとは命名規則のことで、ページを構成する要素をBlock、Element、Modifierの3つに分類して考える。 BEMを使えば、HTMLを書くときにクラス名をどうするか悩まずに、…

【haml】導入方法と書き方

前回BEMの記事 https://chkc.hatenablog.com/entry/2019/08/10/135252 Hamlとは、HTMLよりも簡単に書くためのビューのテンプレートエンジンのこと。 導入方法 gemfile gem "haml-rails", "~> 2.0" $ budle install $ rails haml:erb2haml 書き方 ドキュメン…

【Sass】基礎

Sassについてアウトプットします。 1Sassとは 2sass拡張子とscss拡張子(こっち使う) 3変数使える 4partial 5 mixin 6 sassファイルの構成について 1sassとは cssを拡張した言語。変数使えたり計算もできる。 2scss拡張子 cssに近い文法で書ける。…

【正規表現】概要と基礎

正規表現について4つの項目に分けて説明します。 1正規表現の概要 2 二つのメソッド 3様々なパターンを使ってみる 1正規表現の概要 正規表現とは、特定の文字列が入ってるか確認したり、不要な文字を覗く技術のこと 例えば、ユーザー登録でデータベース…

【JQuery】基礎

JQueryの基礎を大きく8つに分けて説明します。 1JQueryとは 2導入方法 3JQueryを使ってHTML要素を取得する 4JQueryを使ったHTML/CSSの基本操作を行えるようになる 5Javascriptを操作するタイミングについて 6イベントで処理のタイミングを指定する 7…

【Javascript】基礎構文を使った練習問題

https://chkc.hatenablog.com/entry/2019/08/06/170939 前回の続きです。Javascriptの基礎知識を使った練習問題になります。 下のファイルの13行目、higherPriceの引数である120円より高い物をコンソールに出力させる問題です。 関数higherPriceの定義をどう…

【Javascript】基礎

復習がてらアウトプットしてみます。 大きく分けてこんな感じで説明します。 1Javascriptとは 2JavascriptをWebページに導入する 3基礎文法 1Javascriptとは webページを操作するためのプログラミング言語のこと 2Javascriptをwebページに導入する方法 …

【Ruby】eachメソッドとwith_indexメソッド

ランキング形式で、データベースからレコードを出力させたい際に、index(番号)の表示でつまづいたので投稿します。今回の私のケースだとランキングの順位表示になります。 二つのメソッドを組み合わせます。 ・eachメソッド 配列で要素を一つずつ繰り返し…

【Ruby】mapメソッド

mapメソッドとは配列オブジェクトのインスタンスメソッドです。 流れ 1配列の中身を1つずつ取り出す 2ブロックという構文を繰り返し実行 3ブロックの中で返り値を集めて、新しく配列を作る 例えばこんな感じです numbers = [2, 5, 9] cube = numbers.map…

【Ruby】レシーバとselfについて(インスタンスメソッド)

レシーバとは、インスタンスメソッドを利用してるインスタンス自身のこと。 インスタンスメソッド内でselfと書くと、そのメソッドを利用したレシーバが代入される この説明だけだと分かりにくいですね。笑 実際にコードを見てみましょう。 sample.rb 13行目…

【Rails】アソシエーションの確認(rails c)

1対他、でアソシエーションを組んだ時の確認(rails c)をしてみます 今回はスクールで製作した映画のレビューアプリを例にしてみます。 一つの作品(Productモデル)に対して、複数のビュー(Revieew)があることが前提です。 ReviewモデルからProductモデル…

【GitHub】リモートのrepository作成方法

git

リモートのrepository作成 完了したらこの画面がでる URLをコピー ローカルrepositoryとリモートrepositoryの紐付け terminal $cd 作業してるprojectへ $ git remote add origin コピーしたURL $ git remote origin と出ればオッケ これで紐付けは完了 ロー…

git(メモ)

git

$git init 隠しディレクトリ.gitが作成されgitで管理できるようになる $ls .git $git status $git add ディレクトリ名/ファイル名 $git commit -m 'initial commit' コミット $git log ログの確認 $git add . インデックスに追加 $ git commit -m 'コメント'…

【Rails】requireメソッドについて

https://chkc.hatenablog.com/entry/2019/07/26/151823 前回、form_forでレビューをコントローラへ飛ばすところまで書きました。 目次 1requireメソッド 2mergeメソッド 1 今回は、送られてきたform_forで送られたparamsをデータベースへ保存する方法につ…

form_forについて

前回の続きになります。 https://chkc.hatenablog.com/entry/2019/07/26/111954 ルーティングが完了して新規レビュー投稿のページができるとこまでやりました。 今回は、入力フォームから送られたデータはReviewモデルのインスタンスとしてreviewsテーブルに…

resourecesメソッドのネスト

以前学習した時に理解が浅かったので復習です。 今回、例に挙げるのが「映画のレビューを投稿する機能」の実装で、その際のルーティングになります。 まずresourecesメソッドを使わずに書きます。 2行目reviews/newでレビュー新規作成のためのページのルー…

LIKE句の使い方

LIKE句を使ったキーワード検索 前提として、基本的にフォームに入力された情報はparamsという変数に入っています。 変数はハッシュオブジェクトで、キーとバリューで構成されていて、name属性の値がキーになります。 今回はname="keyword"とあるのでkeyword…

データベースにカラムの追加(削除)の仕方

復習。いつも忘れるのでメモがわりに、、 カラムの追加(意味はないけど生成するマイグレーションファイルのクラス名はrate) ①$bundle exec rails g migration AddRateToProducts ②add_column :テーブル名, :カラム名, :カラムの型 ③$bundle exe rake db:…

スクレイピング(ページネーションの全て取得する方法)

https://chkc.hatenablog.com/entry/2019/07/24/190213の続きです。 大きな流れ 1リンク取得 2リンクに対してtitleとimage_urlをスクレイピング この流れは同じで、ページネーションしてあり複数のページがある場合は、1リンク取得を複数ページを対象にす…

スクレイピングした情報をDBに入れる方法

MovieReviewというサイトを使って実装します。 大きな流れ MovieReviewで表示されている映画の個別ページのリンクを取得する 取得した個別ページのリンク1つ1つに対してスクレイピングをする 前提① 映画の情報を扱うために今回はProductモデルを作ります。…

スクレイピング(get_attributeメソッド)searchメソッドの代わりにatメソッドを使う

atメソッドはsearchメソッドと同じようにセレクタを指定して、該当するHTML要素を取得するメソッド ただし、searchメソッドのように該当するものが複数あってもすべて取得はせず、最初の1つしか取得しない searchメソッド atメソッド 1つなので繰り返し処…

スクレイピング(get_attributeメソッド)

get_attributeメソッド aタグ要素のHTMLはリンク先のURLを値とする属性hrefを持っています。このようなHTMLの属性の値を取得したい場合、get_attributeメソッドを使います。 今回は、画像のURLを取得したいので、get_attributeメソッドを使います。 こちらの…

スクレイピング(inner_textメソッド)

復習がてらアウトプットしてみます^^ スクレイピングとは、ウェブサイト上のHTMLからある特定のデータを抜き出す処理のことで、外部のサーバーからデータを抽出し、集計をしたりするときに役立つそうです。 Mecanizeというスクレイピングを行うためのgemが必…

rubyの勉強(FizzBuzz問題)

ブログ練習w fizzbuzz問題 ①1~100までの数字をターミナルに出力 ②ただし3の倍数の時はFizz、5の倍数の時はBuzz、両方の倍数である時はFizzBuzzと出力させる。 まず数字を1-100まで吐き出させます。 ・num=1と定義してあげる ・while文で101まで続く繰り返し…