1
2

More than 3 years have passed since last update.

Ruby, Rails たまに使うけどすぐ忘れるやつ

Last updated at Posted at 2020-03-15

RailsとかRubyの過去に学んだものを適当に残しておく(最近はRailsもRubyも触ってない・・)
思い出したら随時追加する。

rakeタスクをrails consoleから実行する

require 'rake'
Rails.application.load_tasks
Rake::Task['hoge:huga'].execute
# 引数つけて実行
Rake::Task["hoge:huga"].execute({ hogege: 'hugaga' })

bundle でバージョン指定してインストール

# bundle installするときはGemfile.lockのバージョンを確認してから実行
bundle  _1.16.1_ install

rakeタスク内のメソッドはObjectクラス直下に作られちゃう

namespace配下にメソッド書いていると思っていてもObjectクラス以下に作られるのでバグの原因になるかもね

SQLをrails consoleから実行

sql="SELECT * from hoge);"
result=ActiveRecord::Base.connection.select_all(sql).to_hash

rspecの書き方で参考になるページ

http://www.betterspecs.org/jp/
https://speakerdeck.com/willnet/clean-test-code-revised

ruby引数処理

わかりやすい記事
キーワード引数をhashとして受け取る方法とか
https://qiita.com/metheglin/items/306e81c95f8a5cdea296

privateメソッドをrails consoleから呼び出す

# User.find_by(id: 1)は引数
# Hugaはクラス, hoge_private_methodはHugaクラス内のプライベートメソッド
Huga.send(:hoge_private_method, User.find_by(id: 1) )

CSV書き出し

使い捨てコード書くときによく使う

CSV.open('/tmp/hoge.csv','wb') do |csv|
   csv << [1,2]
end

テキスト読み込み

File.foreach("tmp/hoge.txt"){|f| s << f.chomp.to_i}

rakeタスクの確認

bundle exec rake -vT

rails consoleでexplainを実行

User.where(id: 1).joins(:articles).explain

ActiveSupportのString拡張(活用形)まとめ

"Invoice".tableize     # => "invoices"

メール送信

手元のメール送信確認はmailcacherを使ったことがある
https://qiita.com/pocari/items/de0436c39ffc65647cf0

ActionMailer::Base.mail(to: "to@example.com", from: "from@example.jp", subject: "題名", body: "本文").deliver_now

メソッドの定義場所を探す

Hoge.method(:huga).source_location

sqlファイルをrails dbに食わせる

bundle exec rails db < my_db.sql

日付と時刻を扱う

t = Time.parse("2017/04/25 19:23:55"); p t  # 2017-04-25 19:23:55 +0900

クエリ高速化

わかりやすい, Rails6はあまり知らない
https://texta.pixta.jp/entry/2016/02/10/180244
https://qiita.com/leon-joel/items/f26556c9e56833983856

rails consoleの再読み込み

reload!

find_each

わかりやすかった
https://blog.toshimaru.net/rails-find_each/#order%E4%BB%98%E3%81%8D-find_each

スクリプト実行

Rails機能を使いつつ単独のスクリプトを実行する。

bundle exec rails runner hoge.rb 'huga'

pry

わかりやすい
https://qiita.com/k0kubun/items/b118e9ccaef8707c4d9f
https://www.slideshare.net/cuzic/pry-repl

FactoryBotをrails consoleから使う

アクションの前後にフィルタ/処理を挟み込む

BundlerでGemfileを変更せずにローカルの:pathのgemを使う

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2