railsがんばる子

Ruby on Railsがんばる子です。胡蝶蘭のECサイトを運営しています。

2015-01-02から1日間の記事一覧

rubyで処理速度を計測する

result = Benchmark.realtime do 100.times.each do ... do someching end end puts "label #{result}s"

require_treeするとstubしていないものは、コンパイルしてapplication.jsにまとまる

require_treeするとstubしていないものは、コンパイルしてapplication.jsにまとまる app/assets/javascripts/application.js //= require_tree . stubするとapplication.jsにまとまらなくなる app/assets/javascripts/application.js //= stub foobar //= re…

オブジェクトがたくさんできそうなときはシングルトンを検討する

メモリ上にたくさんクラスができるから?らしい。 そういうのってJavaではgaverage collectionの対象になってた気がするけど、rubyではならないので自分で気にしてあげなきゃいけないってこと? でも、それだと色々なクラスでやばいことになりそうだが...

sendという関数名はObjectクラスにもあり、メタプロを連想させるためなるべく別の名前を使う

メモ。 Blog Alpha Networking: Rubyのメタプログラミング技術

例外が発生する処理はかならずbegin - rescue - endが必要

begin ... do something rescue NanikaError=> e logger.error(e) .. do something end

helper内でwhereするとincludesで先読みしててももう一度SQLを投げてしまう

xxx_helper.rb def help(status) nanika = @nanika.where(status: status) .... end これだと、キャッシュされたActiveRecord::Relationを利用せずにまたSQLを投げてしまう なので、rubyのfindを使ってみた。 これでいいのか謎だけど、とりあえずSELECTが発…

hamlにはなるべくrubyのコードを交ぜない

= text_field_tag 'foo{{bar}}'.to_sym ではなく = text_field_tag 'foo{{bar}}'

インスタンスに対する操作というより、集合の取得処理はクラスメソッド(def self.xxx)にする

インスタンスに対する操作というより、集合の取得処理はクラスメソッド(def self.xxx)にする model.rb インスタンスメソッドで書く場合 class Model def find_one Model.find(1) end end ではなく、 クラスメソッドで書く class Model def def.find_one Mod…

メソッドを呼び出す時に()を省略しない

sort_by &:id ではなく sort_by(&:id)

無駄な空行が無いようにする

+ def something + do something .... + do something .... + do something .... + end + + ではなく、 + def something + do something .... + do something .... + do something .... + end +

カンマの後にスペースを入れる

a,b,c ではなく、 a, b, c

case-whenのインデントは無し

case plan when :plan_a ...do something when :plan_b ...do something end ではなく case plan when :plan_a ...do something when :plan_b ...do something end

ロケットハッシュ( key=>value )はなるべく使わない

"key" => "value" ではなく key: "value

"search.#{ name }"このスペースはいらない

"search.#{ name }" "search.#{name}"

例外がおきたらlogger.errorする

begin .... rescue e => logger.error(e) .... end

なるべく説明変数つかって分かりやすく書く

CSV.foreach(Rails.root.join('a', 'b', 'c', 'data.csv')) do |record| path = Rails.root.join('db', 'b', 'c', filename='data.csv' ) CSV.foreach(path) do |record|

余計なrequireはしない

Railsではmoduleが自動読み込みされるのでrequireが不要。 Rails では、自動読み込みは RAILS_ROOT/app/models のような RAILS_ROOT/app/ の中のディレクトリに対し行われます。 RAILS_ROOT/lib とかに配置しても自動読み込みされません。 Rails の自動読み…

Webサイトの分析

Google トレンドで検索ワードを検索できる。 価格の高いもののほうが、実際に買う時期よりも前に検索トレンドが大きくなる 雑誌に製品載ったら、その時と、次の最初の週末にも売れる。 Google Analitycsでページの表示時間などが取れる!!! データを見て分…

自分を奮い立たせるための言葉100選

走れないのに歩くな、歩けないのに走るな わたしたちの視線は、その右にも左にも向けられるべきではありません 自分をじっくり観察することで、相手の思考をある程度予測できる 怠け心はかならず失敗を運んでくる 目的を達成するには、あらゆる欲望を犠牲に…

(未解決事件)俺の環境でRailsAdminが動かない

俺の環境でRailsAdminが動かない。 他のメンバーの環境だと同じソースコードで動いているので、俺の環境がおかしいみたい。 http://localhost:3000/admin Routing Error No route matches [GET] "/admin" メモ Rails_Admin shows Routing Error "No route ma…

RailsAdminでエラー

RailsAdminでエラー 読み込みディレクトリを追加したところ、エラーが発生したとのことでした。 sferik/rails_admin Circular dependency detected while autoloading constant · Issue #1697 · sferik/rails_admin · GitHub 読み込もうとしたDirオブジェク…

eager_load_pathsとautoloadについて

Don't forget about eager_load when extending autoload paths Don't forget about eager_load when extending autoload paths - Arkency Blog autoload_pathsとeager_load_pathsにxxx_xxx.rbが入っているディレクトリを指定するとrailsを起動しただけでモ…

使ってないiPadが¥1,500でサブディスプレイに化ける

僕のiPad2(not Retina)でもいけました。 操作したらちょっとだけ遅延が認められましたが利用に問題は無さそうです。 Duet Display Duet Display

OSXでサブディスプレイするときに便利な方法。

OSXでサブディスプレイするときに便利な方法。 アプリのアイコン > オプション > ディスプレイを選択する [Mac] 複数デスクトップとアプリ割り当て先の上手な活用方法 | あなたのスイッチを押すブログ [Mac] 複数デスクトップとアプリ割り当て先の上手な活用…

vagrant再作成するとSSH繋がらなくなったときの対処

vagrant destroy vagrant up vagrantを壊して、再び作るとエラーがでる。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…