ztbuz@dev

人生に絶望しているZが、それでも技術を身につけようと必死になるブログ

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

Ruby on Railsでサンプルデータを登録するRakeタスクの作成方法

Ruby on Railsでのデータベースへの登録には、大きく分けて次の2つがあるのかな、と思います。 動作に必須となる初期データ 動作を確認するためのサンプルデータ 1に関してはseeds.rbで行ない、2に関してはRakeタスクでやると、管理しやすいのかな〜と思って…

MacでRuby on RailsのSQLiteを確認するGUIクライアント

表題の件に関するメモです。 いくつかフリーソフトを試したのですが、いちばん使いやすかったのはSQLite Database Browserでした。 SQLite Database Browser SQLite Database Browserは、以下のような、データベースの確認に必要な最低限の機能がつかえます…

Ruby on RailsのViewでPartialを使う方法

RailsのPartialの使い方についてです。 Partialとはビューで部分的にテンプレートを適用する、アレです。 Partialの使い方 テンプレートを呼ぶ たとえば_foo.html.erbというテンプレートを呼ぶ場合、以下のように書きます。 <%= render partial: 'foo' %> テ…

Ruby on RailsでView間で値を受け渡す方法

簡単なメモですが、忘れないように。。。 View間で値を受け渡す方法についてまとめました。 View間で値を受け渡す方法 渡す側:provide / content_for 以下の2つの方法で、値を渡すことができます。 基本的に使い方は同じです。 <% provide :foo, 'foo' %> <…

Ruby on Railsで各ページのタイトルを設定する方法

Ruby on Railsで各ページのタイトルをどう設定すればよいのか悩みました。 いろんな記事を見ても、メンテナンス性の観点からどうもしっくり来ず。。。 なので、自分なりの設定方法を考えてみました。 私はエンジニアとして活動している訳ではないので、エン…

Ruby on Railsの日本語へのローカライズの方法

kaminariの設定をしていたらローカライズについて出てきたので、すこし調べてみました。 ローカライズの方法 日本語の設定 まず、config/application.rbを編集して、日本語を有効にします。 デフォルトでは、以下のような記述があります。 # The default loc…

Ruby on Railsでkaminariでページネーションを実装する方法

Railsチュートリアルにはページネーションにwill_paginateを使っていたのですが、私はよく聞くkaminariを使ってみたので、その使い方をまとめてみます。 ちなみにこの記事より公式ドキュメントの方が役に立ちます。。。 amatsuda/kaminari 基本的な使い方 イ…

Ruby on RailsのStrong Parametersの使い方

Ruby on Rails 4から、Strong Parametersというものが導入されたのですね。 これはRails 3でGitHubがMass Assignment脆弱性なるものを突かれた、という経緯があるらしいです。 このStrong Parametersの使い方についてまとめました。 もちろん自分のためです…

Ruby on Railsのflashの使い方

Ruby on Railsを学んでいると度々出てくるflashについて、しっかり学ぼうと思い、使い方をまとめてみました。 基本的な使い方 コントローラでflashをセット まず、以下のようにflashにメッセージをセットします。 flash[:success] = 'アカウントを作成しまし…

Ruby on Railsでユーザ登録/ログイン機能を自作する方法

先日Ruby on Railsチュートリアルを完了しました。 疲れた。。。 それで、ちょっとごちゃごちゃしてきたので、ユーザ登録〜ログイン機能までの実装のみを抜き出して自分なりに整理してみました。 ちなみに今回長くなるのでバリデーションやテストは省略して…

Rubyのor equal演算子の使い方

Rubyには、以下のような書き方があるらしいです。 a ||= b これはor equal演算子と呼ぶらしいのですが、これについて動きなどを調べてみたのでメモします。 or equal演算子について コード例 以下のコードについて、or_equal(name)の部分がそれにあたります…

Rubyのイコールを用いた要素代入関数の書き方

Rubyでは、関数名にイコールを使えると風のうわさで聞きました。 その書き方についてのメモです。 要素代入関数とは コード例 以下のようなコードがあるとします。 この中のname=を要素代入関数というらしいです。 要素代入関数とは、簡単にいうと「代入演算…

Rubyのインスタンスメソッドとクラスメソッドの使い分けについて

Ruby on Railsの学習中にModel周りで悩んでしまったのでメモ。 ひとことで言うと「クラス内のdef self.〜ってなんぞ?」という話についてです。 インスタンスメソッドとクラスメソッドの使い分け コード例 たとえば、以下のようなコードがあるとします。 こ…

Rubyの関数名の感嘆符「!」と疑問符「?」の意味

Ruby on Railsをお勉強中なのです。 ところどころ出てくるメソッドの!と?について、すこし整理してみます。 感嘆符「!」 これは破壊的メソッドを表します。 Rubyのリファレンスには、以下のようにあります。 「!」はメソッド名の一部です。慣用的に、 同名の…

RSpec+Sporkでテストを高速化する方法

いまさらすぎる話題ですが、Rails初心者の私にとっては新鮮な話ですので、ご勘弁ください。。。 RSpecでテストを書いてて「やけに遅いな〜こんなものか」と思っていたのですが、Sporkなるものがあるらしいですね。 ということで設定してみました。 設定方法 …

Gitで直前のコミットを取り消す方法

私はよくやらかしてしまう人なのです。 なので、直前のコミットを取り消すこともしばしばです。 ですが、そのやり方を忘れることもしばしばです。 なので、その方法についてまとめます。 コミットを取り消す方法 コミットのみを取り消す コミットのみを取り…

git remoteの使い方

git remote関連をつかっているときに頭がごちゃごちゃになってきたので、一度整理してみました。 基本的な使い方のみまとめてみます。 git remoteのコマンド リモートリポジトリの一覧を表示する リモートリポジトリの一覧を表示するには、そのままgit remot…

bundle installでのGemのインストール先を変更する方法

単純にbundle installすると、インストールしたGemがシステム全体に影響することになります。 rbenvなどでRubyをインストールしていればいくらかマシですが、でもやっぱり気になります。 A型だもの。 ということで、Gemのインストール先を変更してみます。 …

RailsプロジェクトをHerokuにデプロイする方法

いまRailsの勉強をしているのですが、試しにHerokuにデプロイしてみました。 その方法を簡単にまとめてみます。 Railsの準備 プロジェクトを作成する rails newするだけです。 $ rails new hoge Gitにコミットする HerokuはGitを使うみたいなので、その準備…

Vagrantのsaharaプラグインの使い方

ChefとVagrantでいろいろよろしくやっていると、Vagrantを何度も初期化することになります。 というか、初期化したくないけど、レシピを適用する前に戻りたくなります。 そんなときに便利なのがsaharaというプラグインです。 この使い方についてメモしておき…

Chef SoloでVagrant上にrbenv環境をつくったけどgem installがうまくいかない場合の対処法

以前、Chef SoloでVagrant上にrbenvの環境をつくりました。 Chef SoloでVagrant上にRubyをインストールする方法 - ztbuz@dev ただ、この方法では、rbenv/versionsのグループがrootとなります。 そのため、vagrantユーザでgem installしてもこうなってしまい…

Linuxでlsの実行結果をawkで取得する方法

ls -lなどで特定のファイルやディレクトリの所有者やグループなどを取得したいときがあります。 たとえば、rbenvディレクトリをls -ldすると、次のように表示されます。 $ ls -ld /usr/local/rbenv drwxrwxr-x 10 root rbenv 4096 12月 14 17:40 2013 /usr/l…

Linuxで環境変数のパスを確認する方法

環境構築時につかったのでメモ。 Linuxで、環境変数のパスはecho $PATHにより確認できます。 これは:により区切られていて、左の方が優先されます。 $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin コマンド…

Linuxでコマンドの場所を探すにはwhichコマンドを使う

とある問題を解決しているときに使ったのでメモ。 たとえばrubyコマンドの場所を探すには、以下のようにwhichコマンドをつかいます。 $ which ruby /usr/bin/ruby コマンドの場所を探したり、コマンドにパスがとおっているか確認するときなど、いろんなとき…

rbenv環境下でbundle installしたときにRubyのバージョンがおかしい場合の対処例

足かけ2日ハマり、最後はstackoverflowでロシア人の方に丁寧に手ほどきされながら解決を迎えることができました。 chef - Bundle install is using a different Ruby version? - Stack Overflow 問題の発端 Rails環境を構築していて、試しにbundle installを…

Chef SoloでVagrant上にMySQLをインストールする方法

つぎはChef SoloでVagrant上にMySQLをインストールしてみます。 すこし手間取りましたが、思ったよりすんなりいきました。 MySQLをインストールする準備 クックブックを作成する おなじみクックブックを作成します。 名前はmysqlにします。 $ knife cookbook…

Chef SoloでVagrant上にRubyをインストールする方法

ChefでVagrant上にrubyの実行環境を構築してみましたので、そのレシピを公開などしてみます。 ただ、基本的に以下の記事と同じような形になってしまいますた。。。 chef - 今日作りたくなる簡単cookbook [Kim'sキッチン] rbenv - Qiita [キータ] クックブッ…

ファイルのパーミッションの"T"はスティッキービットというらしい

Chefでrbenvのbashを作成したところ、ファイルのパーミッションが以下のようになりました。 --w----r-T 1 root root 93 12月 12 11:00 2013 rbenv.sh 原因は、modeを0644ではなく644とタイポしたというだけのことですが、このTとはなんぞ? と思ったので、調…

/etc/profile.d/とはなんのためのディレクトリなのか調べてみた

Chefでrbenvをインストールするレシピを書いているのですが、とある参考記事に「bashは/etc/profile.d/以下に配置する」とありました。 「なぜここなの?」と思ったので、メモします。 /etc/profile.d/とは /etc/profile.d/の役割をいろいろ調べてみたところ…

Chef SoloでyumのEPELリポジトリを有効化する方法

Chefでのサーバ構築時に、以下のようなエラーに出くわしました。 たとえばPackage Resourceでlibyamlをインストールしようとすると、 * package[libyaml-devel] action install * No version specified, and no candidate version available for libyaml-dev…