write ahead log

ロールフォワード用

Ruby

WSLでRubyを使うとなんか警告が出て消したい

昔対処して忘れてたのでメモしておく. Insecure worldほにゃららがやたら出る WSLでVagrantを使ったりすると以下の様なメッセージが表示される. warning: Insecure world writable dir /mnt/c in PATH, mode 040777 Rubyは親切なので権限が過剰じゃないかと…

Rails5でJSON APIをテストする

知らないとハマる. JSONのAPIに以下の様にしてアクセスしようとすると. get order_detail_path(@buy_new_computer) assert_response :success UnknownFormatと言われる. ActionController::UnknownFormat: ActionController::UnknownFormat app/controllers/…

Rails5でcoffeescriptを途中から排除した時にハマったのでログ

個人でコツコツ触っているRailsですが, coffeescriptの扱いは困った感じでした. 最初はデフォルトという理由で頑張って勉強しようかと思ったのですが, もうjsもES2016とか2017とかも話題になっているし流石に良いかなと排除することに. ところが消すのも以外…

Rails5でDeviseを使って認証機能を作る

えらく多機能なので試しながらメモる. とりあえず使う とりあえず使ってみる. 認証をするからにはサンプルが欲しいので用意しよう. サンプルプロジェクトを考える メモを管理するサービスということにしよう. コントローラは StaticPages(トップページ管理) …

letter_opener_webを使ってメール送信をプレビューする

letter_opener_webはRailsで開発中のメールをブラウザで見れる便利なgem. WSL環境やvagrant上での開発などではブラウザでメールが見られるのは非常に便利. インストール Gemfileを編集. 開発時のみ入れるように. gem 'letter_opener_web', :group => :develo…

Rails5とCarrierWaveを使って画像アップロード機能を作る

以前はgemなしで実装したので今度はCarrierWaveを使ってみる. あとはせっかくなので画像のリサイズなんかも試す. インストール CarrierWaveで画像のリサイズなんかをやるためにはRMagickやMiniMagickが必要になります. で, これらはImageMagickのラッパーな…

Rails5で検索できるセレクトボックスを作りたい

select2というjquery-pluginがあってこれを使うと良い感じになりそう. (jQuery捨てるとか私の様な三流には無理そうです.ほとんどこれで十分だし...) これをRailsから利用するgemがあるのでこれを利用します. 適当なサンプルを用意する 都道府県を選ぶ画面を…

Rails5にはmigrationにカラムコメントを付けられるらしい

便利そう. 使ってみた. サンプルプロジェクトを作る $ rails new migration_comment --database=mysql $ rails g model user name:string email:string config/database.ymlは適宜設定. migrationファイルを編集する ハッシュでcommentを渡せばよい様です. c…

Railsでファイルアップロードを実装する

入門シリーズが続いている. CarrierWave使うサンプル多いので, 使わないで実装してみる. Railsは5.1.6 サンプルの内容 掲示板的に メッセージ 画像 のCRUDができるものにする. とりあえず足場を作る CRUD実装自体は目的ではないのでScaffoldで. $ rails g sc…

RailsのI18n色々

Rails5触ってみようとチュートリアル読んでからRailsの入門メモが増えてる... とりあえずサンプルプロジェクトを用意する scaffoldでタスクリストのページを用意します. $ rails new i18n_sample $ rails g scaffold Task title:string done:boolean $ rails…

Rails5でwill_paginateを使う

ただの初心者メモ. とりあえずプロジェクトを作る $ rails new pagination Gemを導入する Gemfileに以下を追記. gem 'will_paginate' いつも通りbundleで更新する. $ bundle install サンプルページの用意 とりあえずScaffoldで準備しておく $ rails g scaff…

Rails5にbootstrapを導入する

基本は公式に従うだけ. Gemを導入する Gemfileに以下を追記. gem 'jquery-rails' gem 'bootstrap-sass', '~> 3.3.7' いつも通り更新. $ bundle install application.cssをリネーム $ mv app/assets/stylesheets/application.css app/assets/stylesheets/appl…

CentOS7上にApache + PassengerでSinatraの動く環境を作る

Rubyを入れる(rbenvの導入) rbenvで入れます. rootへrbenvを入れますが, まずは環境を整えます. $ sudo yum install git gcc gcc-c++ openssl-devel readline-devel rbenvのリポジトリをclone. システム全体へ導入するので/usr/localへ入れます. $ sudo git …

Sinatraを使う

久しぶりにRubyを触っているこの頃ですが, Railsはやはり覚える事が多いのでまだまだSinatraの方が私には楽です. 遠い記憶になっているので少しまとめました. 基本的にClassicスタイルで書いていきます. 書いてて思ったのは大体は公式に記載があるということ…

UbuntuにrbenvでRubyを入れる

手っ取り早くaptでも入れられるんだけど, かなり古くてMRIだとバージョンが2.0.0のrc版しかない. (14.04.5 LTS, Trustyで試した自分が悪いとは思うけど) これはいかがなものかということで, GitHubから入れる事にしたが, ハマっちゃったのでメモ. rbenvを入…

Ubuntu(17.10)上で手っ取り早くRuby + Apache2でCGIを使う

CGIなんて久しく使っていなかったのでメモっておく. Apache2を入れる. とりあえずコレ的な. $ sudo apt install apache2 Rubyも入れる $ sudo apt install ruby CGIを有効にする Debian系の設定は初めてで戸惑った. $ sudo a2enmod cgid apacheを再起動. $ s…

Test::Unitでテストを定義順に実行する

Test::Unitはデフォルトではテストを名前順に実行する. require 'test/unit' class TestSample < Test::Unit::TestCase def test_B puts "B" end def test_A puts "A" end end $ ruby sample.rb Loaded suite sample Started A .B . Finished in 0.0011721 s…

Test::Unitでテスト群の最初と最後にだけメソッドを呼びたい

あんまりよろしくないやり方な気がするけど, 便利な時には便利なので. 標準で用意されているsetupとteardownは各テストケースの呼び出し前後に呼び出される. require 'test/unit' class TestSample < Test::Unit::TestCase def setup puts "setup" end def t…

WSL(ubuntu)でRails環境を構築した時のコマンド履歴

もうずいぶん触ってないし, Railsチュートリアルやろうかと思ってハマったので. historyを加工して書き留めておく. $sudo apt install ruby-dev $sudo apt-get install libxml2 libxml2-dev libxslt-dev $sudo apt install ruby-bundler $bundle config buil…

rubygemsで特定のバージョンのgemだけ入れる/消す

UbuntuでRubyのテスト書いて走らせたらWarningになった. Warning: you should require 'minitest/autorun' instead. Warning: or add 'gem "minitest"' before 'require "minitest/autorun"' From: /usr/lib/ruby/2.1.0/test/unit.rb:1:in `<top (required)>' test.rb:1:in `<main></main></top>…