IT分からんわ~_~;

IT色々お勉強中のブログ

Rails

コードの可視性をよくするには

books.google.co.jp medium.com gihyo.jp

rspec高速化parallel_testsを試す

先ずはローカルで実行 dockerのコア数確認 cat /proc/cpuinfo | grep processor processor : 0 processor : 1 processor : 2 processor : 3 コア数分database準備 bundle exec rake parallel:create[4] table準備 bundle exec rake parallel:prepare seedが…

同じテーブルを親子関係にしちゃダメな理由

http://shirusu-ni-tarazu.hatenablog.jp/entry/2012/11/04/173742 不要なカラムが増えすぎちゃうから そもそもrailsで扱いづらい、nested使いづらくなる パフォーマンスがどうなのかは分からない 一応無理やりできるっぽい、おすすめしない 【Rails】has_ma…

rails dm 覚書

service mesh 組織が大きくなっても速いサイクルで開発できる kurbanetesと関係あり サービス同士を繋げる 型と実践 観察できるのは結果だけ こうゆう型をやって結果が出たと説明すると良い 具体的題材があると良い 定量評価大事 fintech 少人数、リモートワ…

rubocopとの奮闘記録 途中

Use a guard clause instead of wrapping the code inside a conditional expression. 条件分岐のネストが深くなるのはダメ bad def hoge if boge? || kuzu? 'sine' end end good def hoge 'sine' if boge? || kuzu? end Don't use parentheses around the c…

Ruby on RailsによるJSON APIのシリアライズの高速化

英訳 Ruby on Railsアプリケーション向けの高速 JSON API gemのオープンソース・リリースを発表します。 Introduction 高速JSONAPIは、Active Model Serializer(AMS)が提供する主要な機能をすべて提供するとともに、 AMSよりも25倍高速というベンチマーク…

本当にインスタンス変数ダメなの?

ameblo.jp Ruby on Railsでcontrollerがインスタンス変数を持つ理由 - Qiita techracho.bpsinc.jp qiita.com

vueを導入

qiita.com こいつ参考に、少し違ったとこを rails webpacker:install Webpacker requires Node.js >= 6.0.0 and you are using 5.7.0 Please upgrade Node.js https://nodejs.org/en/download/ nodeバージョン違うerror出たので nodebrew install-binary v6.…

rails4からrails5にあげる

qiita.com こいつを参照してアップグレード、書いてなくてハマった部分 rubyのバージョンアップ、rbenv使ってたので最新にしてから2.4系取得 4.2.6飛ばして直接5にあげたので rails app:update を実行コマンド4と変わってるので注意 rails sをすると以下の…

Rails 5.2.0 beta: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials

英訳しただけ weblog.rubyonrails.org Railsのアップデートを扱うのが難かしいです。 利用できる良いプラグインがたくさんありましたが、フレームワーク自体に組み込むのが遅くなりました。 だから今できました! Rails 5.2の新しいActive Storageフレームワ…

gemの依存関係調べる

gemの依存関係調べる root@153ac4a865b8:/usr/local/teachme# bundle exec gem dependency rspec Gem rspec-core-3.6.0 aruba (~> 0.6.2, development) coderay (~> 1.0.9, development) cucumber (~> 1.3, development) flexmock (~> 0.9.0, development) m…

rails 呼び出し先を確認

呼び出し先を確認 params[:controller] params[:action] caller_locations(1).first.label pry lsはオブジェクトのメソッドや、変数の表示 find-methodはメソッドを検索してくれます。 github.com

introjs

#Gemfile gem 'introjs-rails', '1.0.0' #css /* *= require introjs */ #javascript //= require introjs $ -> $('#js-intro-button').on 'click', -> introJs().start() = link_to edit_path(@com), 'data-step':1, 'data-intro': 'it is link' do

sidekiq,redis内容確認方法

irb(main):001:0> queue = Sidekiq::Queue.new('default') => #<Sidekiq::Queue:0x007f95049d9680 @name="default", @rname="queue:default"> irb(main):002:0> queue.size #処理待ちのjob Sidekiq::Queue.new.each {|job|puts "#{job.jid} #{job.klass} #{job.args}"} #リトライ待ちのjob Sidekiq::RetrySet.new.each {|job|puts "#{jo…</sidekiq::queue:0x007f95049d9680>

rails_autolink使ってみるよ

文字列中のURLにリンクを追加する方法 Gemfileに以下を記述 gem 'rails_autolink', '1.1.6' view .form-contro = auto_link(simple_format(nl2br @message.content), html: {target: '_blank'}) or = auto_link(text_format @topic.content, html: {target: …

ActiveRecord忘れるので覚書

saveメソッドは、保存できない場合falseを返します。 save!メソッドは、保存できない場合例外ActiveRecord::RecordInvalidが発生します。 カラム名_changed?でそのカラムが変更されたか分かります。 model.changes {“report”=>[“こんばんわ報告”, “こんばん…

mailcatcherが起動しない

起動しないと思ったらただrehashしたら直った、、、、 [git][* fix-iroiro]:~/rails_projects/log/ mailcatcher zsh: command not found: mailcatcher [git][* fix-iroiro]:~/rails_projects/log/ rbenv rehash [git][* fix-iroiro]:~/rails_projects/log/ m…

tooltipでマウスオーバ表示する

titleに表示したいもんを入れればいいっぽ getbootstrap.com - readers = set_read_history_contents(reads) %a{href: 'javascript:void(0);', title: "#{readers}", data: {toggle: "tooltip", placement: "top", html: "true"}} #{read_desc} helperでtitl…

よくあるgem libv8とtherubyracerのインストールでエラーになるやつ

An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. libv8はjavascript v8の何からしい bundle config build.libv8 --with-system-v8 こうするとlibv8はインストールできるがtherubyracerでエラー An error occurred whil…

rails db index名長すぎて怒られる

index名長すぎて怒れれたので以下のようにnameを指定してみる def change create_table :pogehoge_members_permissions do |t| t.references :pogehoge_member, index: true, foreign_key: true t.references :pogehoge_member_permission, index: true, nam…

rake taskの作り方

rake taskの作り方、何度やってもアホなので忘れてしまうのでメモ rails g task hogehoges taskできるので処理を追加 desc は説明 PogeNewsのpoge_idを一括更新 namespace :hogehoges do desc "hogehoges migration" task migrate_all: :environment do doma…

bootstrap-switch-railsを使う

radioボックスをかっこよくしたかったんで Gemfile gem 'bootstrap-switch-rails', '~> 3.3.1' application.js //= require bootstrap-switch javascripts設定 $("body.news").ready -> $('input:checkbox').bootstrapSwitch() あとはviewに普通に書くだけ、…

gem AASMを使う

gem AASMとは rubyに有限オートマトンを追加する為のもの(ステータス管理を簡単にするもの) class or moduleに定義する↓ #AASMをinclude include AASM #columnで対象のカラム、enum使う場合はenum:true aasm column: :hoge, enum: false do # 使うステー…

rails ファイルアップロードなんどやっても忘れるのでメモ

ジェネレータでup用クラス作成 rails g uploader Image つけた名前のあとにUploaderて名前がついたファイルが出来るっぽい モデルとアップデートファイルを結びつける mount_uploader :about_image1, ImageUploder mount_uploader :about_image2,ImageUplode…

rails n+1解決のincludesの使い方すぐ忘れるのでまとめ

hoge has_many pogeの場合 Hoge.includes(:poges) 複数の場合 Hoge.includes(:poges,:ages) ネストされたリレーションの場合 Hoge.includes(:poges,ages:[:doge,boge]) //またはcomの下にtranslationsがある場合 includes(colb: [com: :translations]) inclu…

へなちょこエンジニア、railsでreact使ってみる

react jsx生成コマンド rails g react:component CommentBox react_componentというhelperメソッド react_component('CommentBox') 値を参照する時に使う this.props.hoge 値を変更する時に使う this.setState({ count: this.state.hoge + 1 }); refs divで…

ruby例外処理捕捉について(slack)

railsで捉えたいexceptionの種類 library _builtin (Ruby 2.1.0) raiseの仕方 https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#raise エラーのgem GitHub - smartinez87/exception_notification: Exception Notifier Plugin for Rails rescue…

rails slackにtaskでメッセージを送る

まずslack側でwebhookの設定 https://creww.slack.com/apps/A0F7XDUAZ-incoming-webhooks add configurationボタンを押して通知したいslack channel選択 gem 追加 gem 'slack-notifier' slack側で取得したurlをhookに設定してtaskなどで以下を呼び出す hook …

Capistrano エラーが出てデプロイ出来ない

bundle exec cap production deployすると以下のエラーが出る 実行bundle exec cap production deploy 01 $HOME/.rbenv/bin/rbenv exec bundle install --path /var/www/zen/shared/bundle --without development test --deployment --quiet 01 rbenv: bundl…

rails favicon.icoの設置場所

tools.dynamicdrive.com 上で画像を作る app/views/shared/_head.html.hamlに書く = favicon_link_tag '/favicon.ico 下記に配置 public/favicon.ico