読者です 読者をやめる 読者になる 読者になる

10000hの技術メモ

この先生きのこるための勉強内容&時間記録

Electronではじめるアプリ開発 2-4 最初のアプリケーションを作成する

Electronを本で勉強。2-3はとばして2-4を。

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

続きを読む

Electronではじめるアプリ開発 2-2 アプリケーション作成の準備

Electronを本で勉強。今回は2-2を。

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

続きを読む

Electronではじめるアプリ開発 2-1 Node.jsをインストールする

Electronを本で勉強。

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう

nodebrewのインストール

brew install nodebrew

出力結果

rrcs-172-254-99-29:~ yoshikiito$ brew install nodebrew
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
==> Using the sandbox
==> Downloading https://github.com/hokaccha/nodebrew/archive/v0.9.6.tar.gz
==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v0.9.6
######################################################################## 100.0%
==> /usr/local/Cellar/nodebrew/0.9.6/bin/nodebrew setup_dirs
==> Caveats
Add path:
  export PATH=$HOME/.nodebrew/current/bin:$PATH

To use Homebrew's directories rather than ~/.nodebrew add to your profile:
  export NODEBREW_ROOT=/usr/local/var/nodebrew

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/nodebrew/0.9.6: 7 files, 36.8K, built in 3 seconds

Warningが出てる。若干不安だけども、続けて。セットアップ。

yoshikiito$ nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

.bash_profileの設定

yoshikiito$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
yoshikiito$ source ~/.bash_profile

nodebrew -versionで表示されることを確認。

yoshikiito$ nodebrew -version
nodebrew 0.9.6

Usage:
    nodebrew help                         Show this message
    nodebrew install <version>            Download and install <version> (compile from source)
    nodebrew install-binary <version>     Download and install <version> (binary file)
    nodebrew uninstall <version>          Uninstall <version>
    nodebrew use <version>                Use <version>
    nodebrew list                         List installed versions
    nodebrew ls                           Alias for `list`
    nodebrew ls-remote                    List remote versions
    nodebrew ls-all                       List remote and installed versions
    nodebrew alias <key> <value>          Set alias
    nodebrew unalias <key>                Remove alias
    nodebrew clean <version> | all        Remove source file
    nodebrew selfupdate                   Update nodebrew
    nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
    nodebrew exec <version> -- <command>  Execute <command> using specified <version>

Example:
    # install from binary
    nodebrew install-binary v0.10.22

    # use a specific version number
    nodebrew use v0.10.22

    # io.js
    nodebrew install-binary io@v1.0.0
    nodebrew use io@v1.0.0

できたっぽい。

Node.jsのインストール

最新が出ているものの、本のバージョンにあわせてv6.10.0を選択してインストール。

yoshikiito$ nodebrew install-binary v6.10.0
Fetching: https://nodejs.org/dist/v6.10.0/node-v6.10.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully

インストールしただけだと使えないので、nodebrew use バージョンするか、一つしか入れていないのでnodebrew use stableでも、nodebrew use latestでも結果は一緒っぽい。(ぽいばっかりだな・・・)

yoshikiito$ nodebrew use stable
use v6.10.0

ここまでやったら、node -vで確認。

yoshikiito$ node -v
v6.10.0

OK。

参考

Node.jsをMacにインストール!(Homebrew→Nodebrew→Node.js順にインストール) - モーリーのメモ

今回の勉強時間:22分 累計勉強時間:14時間33分

Ruby on Rails Ⅵ 3章 いいね!に関連する機能をつけよう - いいね!の数を表示しよう

201703022@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

※なぜか2章がレッスンに無い

いいね!の数を表示しよう

countメソッドを使う。

例えば

@user.likes.count

今回の勉強時間:4分 累計勉強時間:14時間11分

Ruby on Rails Ⅵ 1章 いいね!機能を作ろう

201703018@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

いいね!機能のテーブルを作ろう

いいね!機能には「どのuser」が「どのnote」にいいねしているのか、という情報が必要。likesテーブルを作って情報を持つ。

# Likeモデルとマイグレーションファイルの作成
rails g model Like user_id:integer note_id:integer

# マイグレーションファイルに従ってlikesテーブルを作成
rake db:migrate

多対多の関係

userとlikeは1対多の関係。これはuserとnoteの関係と一緒。 noteとlikeも1対多の関係。

いいね!機能を追加することで、userとnoteが多対多の関係になる。前の項で作ったlikesテーブルのようなテーブルを「中間テーブル」という。

modelの中でこの関係を表す書き方

  • has_many
  • belongs_to

を再度確認。

参考:Rails4で1対多のリレーションをモデルに実装する - Rails Webook

いいね!機能の準備をしよう

投稿ページに「いいね!」リンクをつける。

likeコントローラを作るために

rails g controller likes

いいね!機能を実装しよう

いいね!リンクが押下されたときにDBに保存する。既にいいね済のときには、いいねリンクでなく「済」と表示。 これも今時のWebサービスなら当然有るべき機能。。

find_byメソッドを使って、テーブルから条件に合うデータを取得する。

変数likeに、current_userとbuildを用いてLikeインスタンスを代入してください

がいまいちわかってない。

find_byはうまいこと使えた。 メソッドの引数に最初はuser_idとnote_idの両方を指定していたけれども、

current_user.likes.find_by~

という書き方をすればuser_idを省略できるらしい。

いいね!を取り消そう

unlikeまわりの実装。

今回の勉強時間:45分 累計勉強時間:14時間7分

Ruby on Rails Ⅴ 3章 ユーザー認証を仕上げよう - buildを使おう, 別のコントローラをrenderしよう

201703016@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

buildを使おう

現状、投稿するときに自分でユーザIDを選択しているが、自動でログインユーザになるようにしたい。

その過程でbuildを使う。

一応調べてみたら、どうも今時のRailsだとnewでもbuildでも違いはなくて、newはbuildのエイリアスというだけらしい。

参考:railsのnewとbuildの違い - Qiita

別のコントローラをrenderしよう

renderはアクションを経由せずにビューを出力するので、ビューで使う変数はrenderの前で定義しておかないといけない。

これで学習コースのⅤも終了。

今回の勉強時間:15分 累計勉強時間:13時間22分

Ruby on Rails Ⅴ 3章 ユーザー認証を仕上げよう - アクションを移動しよう

201703015@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

アクションを移動しよう

トップページにはメインコンテンツが表示されていると良い。

メインコンテンツとは - 新規投稿フォーム - 投稿の一覧

orderメソッドによる並び替え

Note.all.order(created_at: :desc)

作成日時(created_at)を、降順(desc)で。

演習中、

renderメソッドと@notesを用いて、notes/_note.html.erbを呼び出してください

がわからなかった。どうも

<%= render @notes %>

が答えらしいんだけど、

renderって

render 'フォルダ名/パーシャル名'

では無かったの?

と思って調べたら説明を見つけた。

参考:RailsのViewでのrenderメソッドの使い方 - Rails Webook

renderメソッドでは条件が揃えば省略して書けるらしく、ここで渡してる@notesコレクションは、home_controller.rbで全ノートを降順で代入しているもので、そのnote一つずつに対して_note.html.erbのテンプレートを適用して表示している、ということらしい。

納得。

今回の勉強時間:20分 累計勉強時間:13時間7分