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

IT分からんわ~_~;

IT色々お勉強中のブログ

よくある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…

デブサミ2016 2日目

デブサミ2016 2日目唯のメモ 強いチームの作り方 フリーの人らしい 元AWSの人 大体技術じゃないとこで失敗している。課題いっぱい 全体見る、一部だけ良くしても意味がない 知恵を使う 他人のいいプラクティスを真似する 数値化して見える化 組み合わせる、…

2016デブサミメモ

デブサミで取ったメモ自分用 全く纏まってません唯の箇条書き‥ 後で纏めるかも Yahoo! JAPANが考える、テクノロジーとITエンジニアの未来 言語にPhp/java インフラにopenstack 使ってる 独自拡張したyApache OSSに貢献したい 現場から変えた”サービスの作り…

MacのRailsアプリでPostgreSQLを使用

brew install postgresql postgres --version initdb /usr/local/var/postgres -E utf8 postgres -D /usr/local/var/postgres export PGDATA=/usr/local/var/postgres pg_ctl -l /usr/local/var/postgres/server.log start psql -q -c'select * from pg_user'…

Rails gem installing pg でエラー

とあるrailsアプリでbundle install すると以下エラー An error occurred while installing pg (0.18.2), and Bundler cannot continue. Make sure that `gem install pg -v '0.18.2'` succeeds before bundling. posgreをインストール brew install postgre…

Rails脆弱性情報

脆弱性情報 CVE-2015-7581 Object leak vulnerability for wildcard controller routes in Action Pack //routeに":controller"を含んでいると脆弱性に引っかかる? Not affected: CVE-2015-7578 Possible XSS vulnerability in rails-html-sanitizer Versio…

いろいろ初期設定

mac

vim neobundle インストール方法 rsense bashrc設定方法 git config --global alias.co checkout git config --global alias.st 'status' git config --global alias.ci 'commit -a' git config --global alias.di 'diff' git config --global alias.br 'bra…

tmuxインストール、使い方

mac

% brew install tmux ==> Installing dependencies for tmux: openssl, libevent ==> Installing tmux dependency: openssl ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2e.yosemite.bottle.tar.gz ################################…

Homebrewインストール

mac

xcodeをインストール $ xcode-select --install homebrewをインストール、PCパスワード聞かれるよ $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ==> This script will install: /usr/local/bin/brew /usr/…

RESTとは何が良いのか

RESTのいいところ セッションなどの状態管理を行わない(やり取りされる情報はそれ自体で完結して解釈することができる)」 メッセージ(リクエスト/レスポンス)はステートレス シンプルな設計方法 リソースを4つのHTTPメソッドで操作 独立性が高くシンプルな…