気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Rails

Vagrant Rails4.2にホストOSから繋ぐ方法

Vagrant+VirtualBox+Ruby+Railsによる仮想環境へのRails環境構築は下記を参照することで実現できました。 【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【初心者必見】 - Qiita ただ、仮想環境で実行したrails serverへホストOSへ繋げ…

pry上でのRuby APIの使い方

オブジェクトのメソッドを調べる方法 object_name内に「url」文字列を含むメソッドが存在するかを調べる。 [1] pry(Hoge)>object_name.methods.grep(/url/) DBデータ取得後にパターンマッチする Gruoupsテーブル内のidが123のレーコード内のname項目で数値を…

Rails レンダリング結果をファイル出力する

レスポンスのフォーマットを変更 リクエストの種類に応じて、レスポンスのフォーマットを変更するには以下のように記述。 # app/controllers/products_controller.rb # 下記のリクエストに応じて、それぞれの形式でレスポンスを返す # GET /products/1 # GET…

Rails プロゲートの上級4章(いいね!機能を作ろう)

今回はプロゲートの上級4章、「いいね!機能を作ろう」をやっていきます。 いいね!機能のテーブルを作ろう いいね!機能はどのユーザーがどの記事にいいねをしているかという情報を保持することで実現 user_id,note_idを保持するlikesテーブルを作成する $ …

Railsインストール方法

最新railsをインストール $ gem install rails バージョン指定してインストール $ gem install rails --version="3.2.17" #指定バージョンをインストール $ gem install rails --version="~>3.2.0" #3.2.X系の最新バージョンをインストール $ gem install ra…

Rspecのフックスコープ

each / all / suite c.before(:each) { } # 全てのテストスイート中のそれぞれのexampleの前に実行される c.before(:all) { } # それぞれのトップレベルのグループの最初のexampleの前に実行される c.before(:suite) { } # 全てのspecファイルがロードされた…

Railsソースをデバッグするbeybugの基本コマンド

セットアップ $ gem install byebug ブレークポイントの設定 止めたい箇所に「byebug」を記載 RSpec.describe MonthlyReport, type: :model do describe 'Validations' do subject { build(:monthly_report) } byebug it { is_expected.to be_valid } it { i…

Rails model削除時の確認箇所

Rails model削除時の確認が必要なファイルとその際の対応方法について以下に示す。 確認対象ファイル model migrationファイル rspec ファイルの削除方法 $ rake d model [class_name] $ rake d migration [class_name] rspecは普通に削除で良いのかな??情…

Rails プロゲートの上級3章(ユーザー認証を仕上げよう)

今回はプロゲートの上級3章、「ユーザー認証を仕上げよう」をやっていきます。 プロフィールの編集を制限しよう 下記の対応を行う。 ユーザー一覧でログインユーザー(自分)のみ編集可能とする。 別ユーザーの編集ページにURL直で遷移できないようにする。 ユ…

Rails プロゲートの上級2章(deviseを活用しよう)

今回はプロゲートの上級2章、「deviseを活用しよう」をやっていきます。 ログイン必須ページをつくる class NotesController < ApplicationController # 未ログイン時は本コントローラー内のすべてのアクションにアクセスできなくなる。 before_action :auth…

Rails プロゲートの上級1章(deviseを準備しよう)

今回はプロゲートの上級1章、「deviseを準備しよう」をやっていきます。 ログイン機能を追加する ログイン機能を提供する便利なgem「devise」がある。 以下のような機能を提供する。 ログイン・ログアウト機能 ユーザー登録機能 Facebook、Twitterログイン機…

Rails Fakerの基本的な使い方

インストール sudo gem install faker 使い方 # coding: utf-8 require 'faker' p "Email:" << Faker::Internet.email #=> "eliza@mann.net" p "Month:" << Faker::Number.between(1, 12) # 1〜12のいずれかがランダムに表示 p "Year:" << Faker::Number.bet…

Rails Generatorの設定

Generatorの設定 必要のないassetsやhelperが生成されないようにgeneratorの設定を変更する config/application.rb class Application < Rails::Application ・ ・ config.generators do |g| g.template_engine false g.assets false # stylesheetsとjavascr…

Rails プロフィール画像を表示する

今回はプロゲートの中級7章、「プロフィール画像を表示しよう」をやっていきます。 画像を表示する ERBでの書き方 app/assets/images/wanko.pngを表示させる。 <%= image_tag 'wanko.png', class:"profile_img" %> 生成されるHTML <img alt="wanko" class="profile_img" src="wanko.png"> imageカラムを追加する ra…

Rails パーシャルの作成と呼び出し

今回はプロゲートの中級6章、「renderを使いこなそう」をやっていきます。 noteパーシャルを作成する 記事一覧(notes/index.html.erb)とユーザー参照(users/show.html.erb)にnoteパーシャルを表示させる。 noteパーシャル notes/_note.html.erb <li> <span> <%= note.u</span></li>…

Rails ユーザーと投稿を結びつける

今回はプロゲートの中級 4章「ユーザーをscaffoldしよう」、5章「ユーザーと投稿を結びつけよう」をやっていきます。 ユーザーをscaffoldする $ rails g scafolld User name:string email:string $ rake db:migrate Userのカラムはカンマなどの区切りなしに…

Rails モデル作成メソッドの実装をscaffoldの実装に近づける

プロゲートで学んだことを理解を深めるために書いていきます。 Progate | プログラミングの入門なら基礎から学べるProgate (プロゲート) 今回は中級 2章の「scaffoldのコードに近付けよう(1)」をやっていきます。 setterを削除する def create() @note = Not…

Rails モデル作成メソッドの実装をscaffoldの実装に近づける(2)

今回はプロゲートの中級 3章の「scaffoldのコードに近付けよう(2)」をやっていきます。 form_tagとform_for form_tag:モデルオブジェクトに紐付かない検索フォームを表示する場合に用いる。 form_for:モデルオブジェクトの属性を入力フォームに表示する場…

初めてRSpecを実行する際のコマンド

# テストDB作成(database.ymlは設定済みの前提) $ rake db:create RAILS_ENV=test # DBへテーブル定義を適用 $ rake db:migrate RAILS_ENV=test # test_spec.rbを実行する $ bundle exec rspec spec/models/test_spec.rb

Factory Girlの基本設定

1. Factory Girlのインストール Gemfileにfactory_girl_railsを追加する。 # Gemfile group :test do gem 'factory_girl_rails' end Bundlerを実行する bundle install FactoryGirlの接頭辞を省略する設定 # in spec/spec_helper.rb RSpec.configure do |con…

Rails4のturblinksをざっくり把握する

turbolinksとは ページ遷移をAjaxへ置き換え、JavaScriptやCSSの読み込みを省略することで高速化する gem。 turbolinksの動作 1.リンクのクリックイベントでフック 2.XHRでリンク先ページを取得する。 3.レスポンスをDOM化 4.取得ページのJavaScriptとCSSが…

RailsでPostgreSQLの情報を確認する

RailsでDB接続する config/database.ymlに設定した接続情報を元に接続 $ rails dbconsole db_name=> postgresのコマンド データベース一覧 db_name=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+--…

Bundler を使った gem のプロジェクト内インストール

gem のプロジェクト内インストール $ bundle install --path=vendor/bundle オプションの説明 [ --path=vendor/bundle ] 指定したディレクトリ内に gem がインストールされます。 ここで、パスを指定しないとグローバルインストールになるので注意すること。…

railsの便利なgemメモ

使えるgemを下記に追記して行きます。 ログイン認証 device Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook タスク定期実行 Clockwork adamwiggins/clockwork · GitHub Herokuでcron?もう古いかも、それ - Meltdown Countdown rev. →her…

PostgresSQLをrailsで使えるようにする

postgresSQLをインストール $ brew install postgres 起動、停止方法 Macにおいてhomebrewでインストールしたpostgresを停止・起動する方法を以下に示す。 自動起動の場合 # 起動 $ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents $ lau…

RailsでRakeタスクを作成する

タスクを生成 $ rails generate task sample $ cat lib/tasks/sample.rake 生成タスク namespace :sample do end 生成タスクの中身を実装 namespace :sample do desc "hello" task :hello do puts "hello" end end 作成タスクの確認 $ bundle exec rake -vT …

決まった日時にタスクを実行するWhenever

WheneverはRubyコードでcron設定を行えるrubyのgemらしい。 下記のサイトを参考にインストール、設定を行う。RailsでCron設定をソース管理する!?wheneverを使ってCronを設定する http://ruby-rails.hatenadiary.com/entry/20150224/1424776132 cronへの設定…

書籍「Railsによるアジャイル Webアプリケーション開発」16章

タスクK: デプロイと本番環境途中、時間節約のため12章〜15章の記載は省略デプロイに関しては深く理解したいため、 理解した事についてまとめていく。 16.1 イテレーションK1:Phusion Passenger とMySQLを使ったデプロイ開発環境 サーバー:Webrick →動作速度…

active recordのAPIの動作を確認する方法

#データベースの内容を変更しないようにサンドボックスモードで起動 >> rails console --sandbox #現状のプロジェクトで存在しているモデルに対しての操作を試す >> User.new => #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil></user>

rails開発のデバックで便利なgem

rails-footnotes ページのフッターにデバッグ情報を表示 http://qiita.com/fakestarbaby/items/fe721f8523a6e3d1b7c6Better Errors Railsのエラー画面をわかりやすく表示してくれる http://morizyun.github.io/blog/better-error-gem-rails-ruby-rack/pry-by…

RailsプロジェクトのGemについてのメモ

rails4にデフォルトインストールされているGem一覧 http://qiita.com/regonn/items/c138724d935274281a21便利なgemが紹介されているページ http://labs.timedia.co.jp/2014/02/railsgem.html

書籍「Railsによるアジャイル Webアプリケーション開発」11章

タスクF:Ajaxの追加11.1 イテレーションF1:カートの移動サイドバーにカートを移動し、Ajaxでサイドバーのみの更新で カート内情報を再表示する。まず、カート表示部分を部分テンプレート(partial)として、外だしにする。depot/app/veiws/carts/show.html.erb <div class="cart_title"></div>…

書籍「Railsによるアジャイル Webアプリケーション開発」10章

タスクE:もっとスマートなカート10.1 イテレーションE1:もっとスマートなカートの作成カートに同じ商品を追加した場合に、2件と表示できるようにテーブル定義を更新する。 depot> rails generate migration add_quantity_to_line_items quantity:integer de…

書籍「Railsによるアジャイル Webアプリケーション開発」9章

9.1 イテレーションD1:カートの取得カートのテーブルとその操作APIを作成 depot> rails generate scaffold cart 現在のカートを取得する処理を共通コントローラであるapplicationControllerに作成 class ApplicationController < ActionController::Base pro…

書籍「Railsによるアジャイル Webアプリケーション開発」8章

イテレーションC1:カタログリストの作成今度はお客様の支払いに関するコントローラーを作成します。 depot> rails generate controller Store index webサイトにアクセスしやすくなるようにrootのURLを設定する/depot/config/routes.rb Rails.application.ro…

書籍「Railsによるアジャイル Webアプリケーション開発」7章

7.1 イテレーションB1 : 検証!以下について実施 ・検証およびエラー通知の実行 ・ユニットテストproductテーブルの項目に対するチェックを書く class Product < ActiveRecord::Base #各項目の必須チェック validates :title, :description, :image_url, pres…

書籍「Railsによるアジャイル Webアプリケーション開発」6章

書籍「Railsによるアジャイル Webアプリケーション開発」6章5章は仕様のお話だったので飛ばす。 6.1 タスクA:アプリケーションの作成 1. Rails アプリケーションの作成 depot> rails new depot 2.データベースの作成SQLL Lite3を使う。 →ユーザーアカウント…

書籍「Railsによるアジャイル Webアプリケーション開発」4章

3章はRailsの概念的なアーキテクチャだったので省略 4章を通じてRubyの不明確だった部分のイデオムを復習してみます。1.配列とハッシュ配列とハッシュはインデックス付きのコレクション ■配列の書き方 a = [1, 'cat', 3.14] a[0] a[2] = nil # 設定後の配列 …

書籍「Railsによるアジャイル Webアプリケーション開発」2.2〜2.3

<第二章> 1.動的コンテンツ htmlからRubyのTime.now()を呼び出す。 <%= Time.now %> 内をRubyとして解釈 Rubyの標準オブジェクトとそのメソッドを呼び出せる。 2.時刻の追加 コントローラー内で生成したインスタンス変数を読み込む。 class SayController …

書籍「Railsによるアジャイル Webアプリケーション開発」1〜2.2まで

ralis 3.1.0の内容になるので4系を使っている人には参考にならないかもしれません。 あしからず。<第一章> 1.古いバーションのrailsをインストール gem install rails --version 3.1.02.古いバーションのrailsで実行 rails _3.1.0_ --version<第二章> 1.…