Ruby on Railsでのデータベースへの登録には、大きく分けて次の2つがあるのかな、と思います。 動作に必須となる初期データ 動作を確認するためのサンプルデータ 1に関してはseeds.rbで行ない、2に関してはRakeタスクでやると、管理しやすいのかな〜と思って…
表題の件に関するメモです。 いくつかフリーソフトを試したのですが、いちばん使いやすかったのはSQLite Database Browserでした。 SQLite Database Browser SQLite Database Browserは、以下のような、データベースの確認に必要な最低限の機能がつかえます…
RailsのPartialの使い方についてです。 Partialとはビューで部分的にテンプレートを適用する、アレです。 Partialの使い方 テンプレートを呼ぶ たとえば_foo.html.erbというテンプレートを呼ぶ場合、以下のように書きます。 <%= render partial: 'foo' %> テ…
簡単なメモですが、忘れないように。。。 View間で値を受け渡す方法についてまとめました。 View間で値を受け渡す方法 渡す側:provide / content_for 以下の2つの方法で、値を渡すことができます。 基本的に使い方は同じです。 <% provide :foo, 'foo' %> <…
Ruby on Railsで各ページのタイトルをどう設定すればよいのか悩みました。 いろんな記事を見ても、メンテナンス性の観点からどうもしっくり来ず。。。 なので、自分なりの設定方法を考えてみました。 私はエンジニアとして活動している訳ではないので、エン…
kaminariの設定をしていたらローカライズについて出てきたので、すこし調べてみました。 ローカライズの方法 日本語の設定 まず、config/application.rbを編集して、日本語を有効にします。 デフォルトでは、以下のような記述があります。 # The default loc…
Railsチュートリアルにはページネーションにwill_paginateを使っていたのですが、私はよく聞くkaminariを使ってみたので、その使い方をまとめてみます。 ちなみにこの記事より公式ドキュメントの方が役に立ちます。。。 amatsuda/kaminari 基本的な使い方 イ…
Ruby on Rails 4から、Strong Parametersというものが導入されたのですね。 これはRails 3でGitHubがMass Assignment脆弱性なるものを突かれた、という経緯があるらしいです。 このStrong Parametersの使い方についてまとめました。 もちろん自分のためです…
Ruby on Railsを学んでいると度々出てくるflashについて、しっかり学ぼうと思い、使い方をまとめてみました。 基本的な使い方 コントローラでflashをセット まず、以下のようにflashにメッセージをセットします。 flash[:success] = 'アカウントを作成しまし…
先日Ruby on Railsチュートリアルを完了しました。 疲れた。。。 それで、ちょっとごちゃごちゃしてきたので、ユーザ登録〜ログイン機能までの実装のみを抜き出して自分なりに整理してみました。 ちなみに今回長くなるのでバリデーションやテストは省略して…
Rubyには、以下のような書き方があるらしいです。 a ||= b これはor equal演算子と呼ぶらしいのですが、これについて動きなどを調べてみたのでメモします。 or equal演算子について コード例 以下のコードについて、or_equal(name)の部分がそれにあたります…
Rubyでは、関数名にイコールを使えると風のうわさで聞きました。 その書き方についてのメモです。 要素代入関数とは コード例 以下のようなコードがあるとします。 この中のname=を要素代入関数というらしいです。 要素代入関数とは、簡単にいうと「代入演算…
Ruby on Railsの学習中にModel周りで悩んでしまったのでメモ。 ひとことで言うと「クラス内のdef self.〜ってなんぞ?」という話についてです。 インスタンスメソッドとクラスメソッドの使い分け コード例 たとえば、以下のようなコードがあるとします。 こ…
Ruby on Railsをお勉強中なのです。 ところどころ出てくるメソッドの!と?について、すこし整理してみます。 感嘆符「!」 これは破壊的メソッドを表します。 Rubyのリファレンスには、以下のようにあります。 「!」はメソッド名の一部です。慣用的に、 同名の…
いまさらすぎる話題ですが、Rails初心者の私にとっては新鮮な話ですので、ご勘弁ください。。。 RSpecでテストを書いてて「やけに遅いな〜こんなものか」と思っていたのですが、Sporkなるものがあるらしいですね。 ということで設定してみました。 設定方法 …
私はよくやらかしてしまう人なのです。 なので、直前のコミットを取り消すこともしばしばです。 ですが、そのやり方を忘れることもしばしばです。 なので、その方法についてまとめます。 コミットを取り消す方法 コミットのみを取り消す コミットのみを取り…
git remote関連をつかっているときに頭がごちゃごちゃになってきたので、一度整理してみました。 基本的な使い方のみまとめてみます。 git remoteのコマンド リモートリポジトリの一覧を表示する リモートリポジトリの一覧を表示するには、そのままgit remot…
単純にbundle installすると、インストールしたGemがシステム全体に影響することになります。 rbenvなどでRubyをインストールしていればいくらかマシですが、でもやっぱり気になります。 A型だもの。 ということで、Gemのインストール先を変更してみます。 …
いまRailsの勉強をしているのですが、試しにHerokuにデプロイしてみました。 その方法を簡単にまとめてみます。 Railsの準備 プロジェクトを作成する rails newするだけです。 $ rails new hoge Gitにコミットする HerokuはGitを使うみたいなので、その準備…
ChefとVagrantでいろいろよろしくやっていると、Vagrantを何度も初期化することになります。 というか、初期化したくないけど、レシピを適用する前に戻りたくなります。 そんなときに便利なのがsaharaというプラグインです。 この使い方についてメモしておき…
以前、Chef SoloでVagrant上にrbenvの環境をつくりました。 Chef SoloでVagrant上にRubyをインストールする方法 - ztbuz@dev ただ、この方法では、rbenv/versionsのグループがrootとなります。 そのため、vagrantユーザでgem installしてもこうなってしまい…
ls -lなどで特定のファイルやディレクトリの所有者やグループなどを取得したいときがあります。 たとえば、rbenvディレクトリをls -ldすると、次のように表示されます。 $ ls -ld /usr/local/rbenv drwxrwxr-x 10 root rbenv 4096 12月 14 17:40 2013 /usr/l…
環境構築時につかったのでメモ。 Linuxで、環境変数のパスはecho $PATHにより確認できます。 これは:により区切られていて、左の方が優先されます。 $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin コマンド…
とある問題を解決しているときに使ったのでメモ。 たとえばrubyコマンドの場所を探すには、以下のようにwhichコマンドをつかいます。 $ which ruby /usr/bin/ruby コマンドの場所を探したり、コマンドにパスがとおっているか確認するときなど、いろんなとき…
足かけ2日ハマり、最後はstackoverflowでロシア人の方に丁寧に手ほどきされながら解決を迎えることができました。 chef - Bundle install is using a different Ruby version? - Stack Overflow 問題の発端 Rails環境を構築していて、試しにbundle installを…
つぎはChef SoloでVagrant上にMySQLをインストールしてみます。 すこし手間取りましたが、思ったよりすんなりいきました。 MySQLをインストールする準備 クックブックを作成する おなじみクックブックを作成します。 名前はmysqlにします。 $ knife cookbook…
ChefでVagrant上にrubyの実行環境を構築してみましたので、そのレシピを公開などしてみます。 ただ、基本的に以下の記事と同じような形になってしまいますた。。。 chef - 今日作りたくなる簡単cookbook [Kim'sキッチン] rbenv - Qiita [キータ] クックブッ…
Chefでrbenvのbashを作成したところ、ファイルのパーミッションが以下のようになりました。 --w----r-T 1 root root 93 12月 12 11:00 2013 rbenv.sh 原因は、modeを0644ではなく644とタイポしたというだけのことですが、このTとはなんぞ? と思ったので、調…
Chefでrbenvをインストールするレシピを書いているのですが、とある参考記事に「bashは/etc/profile.d/以下に配置する」とありました。 「なぜここなの?」と思ったので、メモします。 /etc/profile.d/とは /etc/profile.d/の役割をいろいろ調べてみたところ…
Chefでのサーバ構築時に、以下のようなエラーに出くわしました。 たとえばPackage Resourceでlibyamlをインストールしようとすると、 * package[libyaml-devel] action install * No version specified, and no candidate version available for libyaml-dev…