読者です 読者をやめる 読者になる 読者になる

IT分からんわ~_~;

IT色々お勉強中のブログ

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>

JQuery javascriptの基本

どうしても忘れてしまうのでメモ $(セレクタ).イベント(function(e){ $(this) eはjQuery.eventが返ってくる e.target.valueはクリックしたもののvalue $(this)でイベントの発生元($(#hoge)こんなんと一緒) e.preventDefault()その要素のイベントをキャンセ…

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: …

vimfilter使い方備忘

vim

記憶からよく消えるので 起動 :e . キーバインド Tab バッファ切り替え 全ファイルの選択をトグル r カーソル下/選択 ファイルの名前を変更 m –/選択 ファイルを移動 c –/選択 ファイルをコピー p – ファイルをペースト d –/選択 ファイルを削除(ゴミ箱…

devise unlock解除

devise unlock解除 def unlock @hoge.unlock_access! end

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…

bootstarap ファイル選択のデザインを変える

bootstarap ファイル選択を少し変えたい時 以下は枠線をなくしたい場合だけ form { .form-control[type="file"] { border: 0px; box-shadow: none; padding-left: 0; } } もっと変えたければ↓ Bootstrapのfileアップロードフォームがダサいから装飾してみた |…

window.onloadと$(document).readyの違い

window.onload onloadイベント発生時に実行されますが、 これはDOMツリーの構築だけでなく、画像や他の全てのデータの 読み込みが完了した時 1つしか実行されない window.onload = ()-> $('.js-bootstrap-switch').bootstrapSwitch() $(document).ready こち…

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…

メソッドの定義場所を調べる方法

methodで#Methodを取り出す (byebug) m=co.method(:is_entry?) #<Method: Hoge#is_entry?> (byebug) m.source_location ["(eval)", 1] (byebug) m.owner</method:>

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…

react学習中

constructor: (props)-> コンポーネントがマウントされる前に呼ばれる。コンストラクタを自分で実装したい場合は super(props) を必ず呼ばなければならない。状態を初期化する場所 propsはreadonly stateは変更可能 defaultはpropsとして自分自身の値を参照…

へなちょこエンジニア、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で…

nginx の自動起動覚書

linuxの場合 sudo chkconfig --add nginx sudo chkconfig nginx on macの場合 cp /usr/local/Cellar/postgresql/9.5.0/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

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 timezoneの扱いについて

いろいろ頭の整理の為 application.rbに設定すると変更できる ①表示時のタイムゾーンをJSTに変更 config.time_zone = 'Tokyo' ②DB保存時のタイムゾーンをJSTに変更 config.active_record.default_timezone = :local ②を設定してなかった時 yesterday = Time.…

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すると以下のエラーが出る 01 $HOME/.rbenv/bin/rbenv exec bundle install --path /var/www/zen/shared/bundle --without development test --deployment --quiet 01 rbenv: bundle: command not found (Backtrace restri…

text formとボタンをくっつけて表示する方法

text formとボタンをくっつけて表示する方法 input-groupで囲ってそん中にinput-group-btn or input-group-addon入れりゃいいっぽい .input-group = text_field_tag 'keyword', class: 'form-control input-lg search-input' %span.input-group-btn %button.…

rails favicon.icoの設置場所

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

rails 初期gem導入

#haml導入 gem 'haml', '4.0.7 gem 'haml-rails', '0.9.0' #bootstrap導入 gem 'bootstrap-sass', '3.3.6' #論理削除できるやつ gem 'paranoia', '2.1.5' #findするとき便利なやつ gem 'friendly_id', '~> 5.1.0' #非同期処理するとき必要になるメールとか g…

railsでのflash使い方

基本 flash[:notice] = 'hoge' 現在のアクションのみ有効 flash.now[:notice] = 'hoge' 破棄 flash.discard(キー) flash[:notice]=nil

急にpostgresが繋がらなくなった

急にpostgresが繋がらなくなった psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? postmaster.pidを消したら何か動くようなった /usr…

bundle install で gem install nokogiriで失敗する

久しぶりにrailsアプリを作ろうとしたらnokogiriエラー いつも直し方を忘れるのでメモ エラー↓ -[2197]% bundle install Fetching gem metadata from https://rubygems.org/.......... Fetching version metadata from https://rubygems.org/.. Fetching dep…

負荷テスト、アラートテスト用

cpu負荷を上げる yes >> /dev/null ps aux | grep yes | grep -v grep top メモリ負荷上げる /dev/null < $(yes) free -m

ログインした後に元のページにリダイレクトする

DeviseManager::SessionsController protected def after_sign_in_path_for(resource) after_sign_in_path = session[:request_from] || manager_root_path session.delete(:request_from) return after_sign_in_path end ApplicationController def request…

Capistranoでstage環境のプロセスを起動停止する方法

ステージング環境に直接入ってコマンド打っても起動せぇへん bundle exec unicorn -c /var/www/hogehoge/current/config/unicorn/stage.rb -E deployment -D 停止はできるっぽい kill -QUIT `cat /var/www/hogehoge/current/tmp/pids/unicorn.pid` 入らんで…

CloudWatchでEC2を監視

標準だけだと足り無いのでカスタム用メトリックスを作成 [hoge@ip-2342-234 cloudwatch]$ ls credential custom_metrics.sh http_status_check.sh #!/bin/bash export JAVA_HOME=/usr/lib/jvm/jre export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon export …

cap stage deployを実行するとPermission denied (publickey)というエラー

cap stage deployを実行するとエラーになる [git][* hoge-hoge-hoge]:~/projects/hoge/ bundle exec cap stage deploy 00:00 git:wrapper 01 mkdir -p /tmp/hoge/ ✔ 01 deployer@hoge.poge.me 0.226s Uploading /tmp/hoge/git-ssh.sh 100.0% 02 chmod +rx /t…

rails sidekiqでのエラーハンドリング

sidekiqでのエラーハンドリング config/initializers/sidekiq.rb Sidekiq.configure_server do |config| config.redis = { url: 'redis://127.0.0.1:3333' } end config.redisの下に以下を追加 config.error_handlers << Proc.new { |ex, ctx_hash| Exceptio…

rails enumの表示を共通化

viewでそれぞれ書くのがめんどくさかったんでmodelに定義 human_hoge ['hoge', 'hoge2', 'hoge3'].each do |method| define_method "human_#{method}" do I18n.t("activerecord.attributes.applicant.#{method.pluralize}").fetch(send(method).to_sym) end …

git でhttpsからgit接続に変更

公開鍵作成 cd ~/.ssh/ ssh-keygen -t rsa クリップボードにコピー pbcopy < ~/.ssh/id_rsa.pub github側で登録 https://github.com/settings/ssh app/.git/configを書き換え [remote "origin"] url = git@github.com:hoge/hoge.git

vagrant 使ってみる

vagrant up 失敗する cd .ssh/ chmod 600 authorized_keys

rsync の使い方

.git database.yml以外削除 ls | egrep -v '^.git|config/database.yml$'|xargs rm -r ファイルコピー rsync -a pogehoge/ ~/rails_projects/hoge --exclude '.git' --exclude 'config/database.yml'

postgres コマンド色々

import psql -f dump.sql hoge_development 制約削除 ALTER TABLE applicants DROP CONSTRAINT fk_rails_cd9891c05e; スーパユーザでログイン psql postgres ユーザ一覧 \du ユーザ作成 create user yourname; 権限付与 alter role yourname createdb; おま…

rails meta_tag設定

meta_tagを設定 :ruby set_meta_tags reverse: true, title: title || t('meta.title'), description: description || t('meta.description'), ArgumentErrorエラーが出る ArgumentError - wrong number of arguments (0 for 1): def description text = nil…

cocoonを使ってみた

github.com cocoon使ってみた readmeに書いてある通り以下を実行 Gemfileに追加 gem "cocoon" application.js に追加 //= require cocoon strong_parameterに :id :_destroy を入れるとからの場合に消してくれるらしい インデントに注意して追加してね = sem…

新規railsアプリ作成 postgres編

hogehogeアプリを作成 mkdir hogehoge cd hogehoge echo 2.2.4 > .ruby-version ruby -v rbenv local 2.2.4 ll -a rbenv versions gem install bundler rbenv gemset list rbenv gemset create 2.2.4 hoge echo >.rbenv-gemsets hoge ll -a bundle init vim …

rails routesの考え方

routesの基本 akkunchoi.github.io railsguides.jp

postgres

admins-MacBook-Pro% initdb /usr/local/var/postgres -E utf8 The files belonging to this database system will be owned by user "hoge". This user must also own the server process. The database cluster will be initialized with locale "ja_JP.UT…

zshへ切り替え、rbenv 入れ直し

mac

インストールしたzshの場所書く sudo vi /etc/shells /usr/local/bin/zsh 切り替え実施 chsh -s /usr/local/bin/zsh admins-MacBook-Pro% brew uninstall rbenv Uninstalling /usr/local/Cellar/rbenv/0.4.0... (32 files, 49.8K) admins-MacBook-Pro% brew …

brew update install が出来ない

mac

brew updateするとエラーになる‥ admins-MacBook-Pro:Users hoge$ brew update error: could not lock config file .git/config: Permission denied Error: Failure while executing: git config core.autocrlf false ユーザ変更する cd $(brew --prefix) ls…