初心者開発メモ!

プログラミングやる上で手こずりやすいところを解説しているブログです

MYSQLのコマンド一覧

mysqlにログインする

mysql -u root
mysqlにログインするコマンドです。 ユーザー名が「root」でログインするという意味です。

mysql -u root -p
このように、-pをつけるとパスワードが要求されます。
設定していない場合は何も打ち込まずenterで大丈夫です。

mysqlが起動中か確認する

mysqladmin ping
これはmysqlが起動しているかどうか確認するコマンドです。

mysqld is alive

と表示される場合は起動しています。

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'

と表示された場合は起動していません。

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'ODBC'@'localhost' (using password: NO)'`

と表示された場合パスワードが設定されてる可能性が高いです。

パスワードが設定されている場合は
mysqladmin ping -u root -p
と実行してパスワードを打ち込めば大丈夫のはずです。

mysqlにあるデータベースの一覧を確認する

ターミナルでmysqlにログインした状態で(ログインは上記参照)
show databases;
と打ち込めばデータベースの一覧を確認することができます。

特定のデータベースの情報を確認する

ターミナルでmysqlにログインした状態で(ログインは上記参照)
use データベース名;
と打ち込みます。
これで特定のデータベースを指定することができます。

次に
show tables;
と打ち込むと指定したデータベースのテーブル情報を確認することができます。

mysqlからデータベースを削除する

mysqlにログインした状態(ログインは上記参照)で以下のコマンドを打つこみます。
drop database データベース名;
と打ち込めばデータベースを削除することができます。

railsでの開発をhamlにする方法

railsでのhtml(html.erbファイル)をhaml(html.hamlファイル)に変換する方法を説明していきます。

hamlとは

そもそもhamlとは「マークアップは美しくあるべき」という考えに基づいて開発された言語です。
hamlを使うことによって、viewファイルを「きれいに」「読みやすく」「生産的に」作成することができます。
要はhtmlをきれいな言語で置き換えたものがhamlであると説明すればわかりやすいでしょう。

railshamlを導入する

gemfileに gem 'haml-rails' を記述し、ターミナルで
bundle installします。

するとターミナルで

HEADS UP! Haml 4.0 has many improvements, but also has changes that may break
your application:

* Support for Ruby 1.8.6 dropped
* Support for Rails 2 dropped
* Sass filter now always outputs <style> tags
* Data attributes are now hyphenated, not underscored
* html2haml utility moved to the html2haml gem
* Textile and Maruku filters moved to the haml-contrib gem

For more info see:

http://rubydoc.info/github/haml/haml/file/CHANGELOG.md

という警告のようなものが出てきます。
こちらはあまり気にしなくて大丈夫です。

次にもともとhtmlで書かれていたhtml.erbファイルをhtml.hamlに置換しましょう。

htm.erbからhtml.hamlへ置換する

gemfileに
gem 'erb2haml'
を記述してbundle installします。

ここでターミナル上で
rake -T
というコマンドを実行してみましょう。
このコマンドを実行すると、現在の作業しているrailsアプリケーションで実行できる
rake ~~~
というコマンドの一覧を表示してくれます。

これを実行するといろいろなrakeコマンドが表示される中に

rake haml:convert_erbs                                 # Perform bulk conversion of all html.erb files ...
rake haml:erb2haml                                     # Convert html.erb to html.haml each file in app...
rake haml:replace_erbs                                 # Perform bulk conversion of all html.erb files ...

という表示があるのが確認できるはずです。

これが確認できたらターミナルで
rake haml:replace_erbs
を実行しましょう。

f:id:ryouzis:20150827220707p:plain うまくいくとこのように表示されます。

それからもともと存在していたviewファイルを見てみると・・・ f:id:ryouzis:20150827220832p:plain このようにhtml.hamlというファイルに置換されていたら成功です!

sublime textの便利な設定

多くの開発者が愛用していると言われるsublime text。
今回はsublime textに便利な機能を付け加える設定をしていきたいと思います。

設定

これから行う設定はみなさん必ず入れて欲しい設定です。
コピー&ペーストで迷わず設定を記述して保存しましょう。
sublimetextを開き
Sublime text > preference > setting - user
をクリックしていきましょう。

そうするとsublime textではこのような表示になっているはずです。 f:id:ryouzis:20150826233936p:plain

ここに設定を書き加えていきたいと思います。

{
    "draw_white_space": "all",
    "font_size": 12,
    "highlight_line": true,
    "highlight_modified_tabs": true,
    "translate_tabs_to_spaces": true,
    "tab_size": 2,
    "trim_trailing_white_space_on_save": false,
    "word_wrap": true
}

コピー&ペーストで構いません。

f:id:ryouzis:20150826235127p:plain このようになるはずです。

以下は設定した記述の詳細です。

"draw_white_space": "all",
空白スペースに白い点で表示します。

"font_size": 12,
フォントの大きさを12にします。 (数字を変えれば好きな大きさに変更することができます。)

"highlight_line": true,
現在編集している行をハイライトします。

"highlight_modified_tabs": true,
未保存のタブを強調します。

"translate_tabs_to_spaces": true,
tabキーを押したときに空白スペースになります。

"tab_size": 2,
tabキーを押したときに空白を2つ空けます。

"trim_trailing_white_space_on_save": false,
行末の空白を保存時に削除する設定をなしにします。

"word_wrap": true
自動で折り返しをしてくれます。

この他にも様々なものがあるので、発展的な設定を導入したい方は調べてみてください。

railsのapplication_controllerについて

railsを使う時に普段使っているapplication_controller.rbについて詳しく調べてみました。

application_controller.rbの詳細

application_controller.rbとは

f:id:ryouzis:20150820185854p:plain

これは何も手を加えていないapplication_controller.rbです。
1行目を見てみましょう。
class ApplicationController < ActionController::Base
と記述してあります。
この記述によりapplication_controller.rbはActionController::Baseを継承しています。 ActionController::Baseとはrailsの様々なメソッドが使えるものです。
詳しくは下記のサイトを参照してください。
Action Controller の概要 | Rails ガイド

また、applicatio_controller.rbはすべてのコントローラで共通しているコントローラです。
f:id:ryouzis:20150820182737p:plain
これはtop_controller.rbをデフォルトで作ったものです。 1行目を見てください。
class TopController < ApplicationController
と記述してあります。
これによってtop_controller.rbがapplication_controller.rbを継承するということです。
これらがすべてのコントローラで記述されるのでapplication_controllerはすべてのコントローラに継承されています。
これによってapplication_controller.rbで記述されている処理やapplication_controller.rbが継承しているActionController::Baseの便利なメソッドをすべてのコントローラで使用できることです。

protect_from_forgery with:exceptionについて

protect_from_forgery with: :exception
はapplication_controllerにデフォルトで記述されています。
これはCSRFという攻撃の対策してくれています。
CSRFとはクロスサイトリクエストフォージェリの略で、
Webサイトにスクリプトや自動転送などを仕込むことによって、閲覧者を意図的に別のWebサイト上で何らかの操作などを行わせる攻撃だそうです。
そういった攻撃を行わせないためにこの記述をしているようです。

railsのgemfileの中身について

railsを使う時に普段使っているgemfileについて詳しく調べてみました。

gemfileの詳細

gemfileとは

gemfileとはbundler用の設定ファイルです。
bundlerはgemfileの記述に従って、gemの依存関係を示したgemfile.lockを作成します。
そもそもbundlerってなに?
という方はこちらへ

gemfileの中身

f:id:ryouzis:20150820171947p:plain これは
rails new sample -d mysql
コマンドで作られたデフォルトのgemfileです。

1行目を見てみましょう。
source 'https://rubygems.org'
と書いてあります。
これは、gemfileに最低1つ書かれていなければいけないコードです。
Bundlerはこのsourceのところにgemのコードを取りに行くようです。

'gem ~~~'と書いてあるのはgemですね。
ここで gem 'rails', '4.2.1'
と書いてあります。 これはrailsもgemだいうことを示していますね!

35行目あたりに

group :development, test do
~
~
~
end

と書いてあります。
これはgemをインストールする環境を指定できます。

  • development
  • test
  • product

の3つの環境を指定できます。
(docという環境も指定することができますがこれについては現在調査中です)

補足ですが、
rails new sample -d mysql
コマンドでrailsアプリケーションを作成する時に
bundle install
も行われているのでgemfileのデフォルトのgemをインストールしているようです。

参考にしたサイト
Gemfileについて調べてみた - xxxcaqui.log

ウェブページをすべてスクリーンショットする

ウェブページをみているときにブラウザには表示されていないすべての画面をスクリーンショットしたいことがあります。
そのときはgoogle chrome拡張機能を使うと簡単にすることができます。
google chromeを使っていない方・・・ごめんなさいm(. .)m
拡張機能といっても設定はとても簡単なのですぐにできます。

設定

まずgoogle choromeを開きます。

chrome.google.com
のページに遷移しましょう。
このページはgoogle chromeのアプリや拡張機能などをダウンロードできるサイトです。
とても便利ものが掲載されているので、困ったときはここでアプリや拡張機能を検索すると掘り出し物が見つかりそうです。
gyazo.com

話が逸れましたね。
次は左側にある検索ボックスの「ストアを検索」のところに
Full Page Screen Capture
と入力して検索しましょう。

そして「full page screen capture」をgoogle chromeに追加するために、
右側の「chromeに追加」のボタンを押しましょう。
するとすぐに機能が追加されます。
google chomeの画面の右上をみてください
カメラみたいなマークが追加されているはずです!

そのカメラマークをスクリーンショットしたいサイトの画面でポチッと押すと、
パックンのようなものが出てきて作業しているようになります。
すると数秒でスクリーンショットが完成します。

スクリーンショットができないページもあるようで、できなかった場合は
gyazo.com
のような表示が出てきます。

railsの中でtestに不要なファイルが作られないように設定する

railsのコントローラやモデルを作ったときにrailsファイルのtestファイルの中に不要なファイルが生成されてしまいます。

これを自動で作成されないように回避する方法です。 とっても簡単です。

testファイルを作成しないようにする sample(アプリケーション名)/config/application.rbファイルの中 f:id:ryouzis:20150818185804p:plain (最初はこのような画面になっています)

config.generators do |g|
  g.helper false
  g.assets false
  g.test_framework false
end

というコードを

f:id:ryouzis:20150818185819p:plain この場所に記述してください。

記述すると今後はtestファイルが自動で作成されなくなります。