Web + Life Hack

〜True But Useless〜

rails

部分的にhttpsを付与する時に確認したいこと。〜view編〜

あれ?パスが更新されない?なんで?なんで?今回、「あるURL先からhttpだったURLをhttpsに変更する」という処理を追記する時にハマったのでメモ。 誤ったソース <% unless growth_hackers.blank? %> <%= link_to "growth_hackerに移動", growth_hacker_path…

めちゃめちゃ簡単なキャッシュ対策。それは「nilガード」

エンジニアの永遠の課題である速度改善。。。 そのためにサーバーを増やしたり、railsだとフラグメントキャッシュを 使ったりするかと思うのですが、 一番手っ取り早いキャッシュ対策がありました。 サンプルコード @GH ||= GrowthHack.last 意味は @GHがnil…

【rails】【開発】rails consoleでさくっとエビデンスを残す方法

rails consoleでデータを元に自分が書いたメソッドにバグが無いか 確かめたりは良くするのですが、 今回、その結果をエビデンス(結果をテキストファイルに出力)を取るという ことをしてみました。 (Rubyで出来るんだからrails consoleでも出来るんじゃ。…

【Rails】「paramsが扱えるのはシンボルだけ。」と思ってる方に見て欲しい内容

view側 <%= form_for([:front, @g08m11_profile], :url => confirm_for_join_front_user_url) do |f| %> <td class="info p15"> <p class="mb10"><span class="mr30"><%= f.date_select :birthday, :start_year => G08m11Profile::max_year_for_registration_birthday, :end_year =>1900, :prompt => true %></span></p></td>

【Rails】Railsのバグ?joinsを使ってハマるパターン

Railsで新しい検索条件(scopeなどでjoinsを使用)を追加した時にハマりました。 最近、ハマってしかない。。。。 前提条件 shopsテーブルには「company_id」が存在する。 companysテーブルには「shop_id」が存在する。 shop_profilesテーブルには「shop_id」…

【Ruby】【Rails】へっぽこエンジニアがfragment cacheでハマって解決するまでの紆余曲折まとめ

弊社で請け負った開発の納品前に 速度に問題があるということで 急遽、キャッシュを導入することになりました。 今回はRails4でキャッシュ導入で悪戦苦闘した一部始終をご覧ください。 前提条件: Ruby/Rails g08m11$ ruby -v ruby 2.0.0p247 (2013-06-27 re…

【rails】【ruby】ActiveRecordでcount(*)の結果をsortして上位をリストアップする方法をいけてないコードで書いてみた!

なかなかやったことがなかったので備忘録がてらにメモ。 (あまり良いコードではないのは重々承知なので、やり方として覚えるという意味で。。。) やりたかった事としては ActiveRecordでcount(*)の結果をsortして上位をリストアップ です。 今回は、今月中で…

【ruby】【rails】【API】じゃらんAPIでせこせこホテル情報を取得する方法

みんな大好きAPI! web系で働いて良くAPI、スクレイピングを利用するようになりました。 例を上げると ホットペッパーAPI http://webservice.recruit.co.jp/beauty/reference.html や 楽天の商品検索API http://webservice.rakuten.co.jp/api/itemsearch/ な…

【rails】素人に「アセットパイプライン」は危険だった。。。

現在、絶賛viewの実装を行っている最中です。 そこでアセットパイプラインを活用してみようと思い、 色々試してみました。 アセットパイプライン http://railsdoc.com/asset_pipeline なかなかメリットが多そう! railsの最新バージョンにもしてあるし、 試…

【rails4.0】【ruby2.0】link_toタグとimage_tagを一緒に使う

link_toタグとimage_tagを一緒につかいたいと思う機会がなかったというか、 今までviewを触る時はパーシャルやpathを書く事が多かったので この書き方を知りませんでした。 また、ググっても2008年といった古めの記事、 バージョン自体も古い(rails3.0系)記…

【ruby】【rails】先月分(月初め〜月末)を無理くり抽出する方法

今回はcreated_atを対象に先月分を抽出する方法を上げていきます。 ポイントは「無理くり」ということ。 もっとスマートなやり方があると思いますが取り急ぎ、期間内のデータが欲しい 方はぜひ、参考にして頂きたいです。 Model.where("created_at between ?…

【ruby】【rails】rubyで年齢を出力する方法

年齢を表示する時にやったことを書きたいと思います。単純にdate型、time型で合わせての引き算だと値がおかしいことになっていました。 2.0.0p247 :036 >g08m11.birthday.class => Time 2.0.0p247 :034 > (DateTime.now - 5.year) - DateTime.now => (-19720…

【rails】【Mac Ports】誰得?wgetやyumやbrewを使わないで「rmagick」を入れる方法

wgetなどのファイル取得ツールがたまたま手元になかったので macにデフォルトで入ってる「Mac Ports」を使って取得してみました。 PATH指定 export PATH=/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/man:$MANPATHMacPorts自身とそのリ…

【rails】文字列を単数形や複数形にする方法

ある文字列の値を変えずに 単数形にしたり複数形にしたい場合に便利なrailsの関数を勉強しました。 文字列が単数形だった場合 2.0.0p247 :014 > t = 'test' => "test" 2.0.0p247 :016 > t.pluralize => "tests" 2.0.0p247 :017 > t.singularize => "test" 文…

【rails】【ruby】rails4では当たり前?今日学んだこと(Strong Parametersなど)

今日は主にこんなことを学んだ、学び直しました。 基本 config/routes.rbに :except => [:destroy]が書かれていたら 7つの基本アクションの中で不要なアクションを指定している (この場合は「destroy」)ことを表している。 rails3とrails4での差分 名称が変…

【rails】【ruby】これは覚えたい!異なる型同士を使ってDateTime型で比較する方法

日付(今回は予約可能日)と時刻(今回は予約可能時刻)が それぞれ異なる型の変数であり、 それをDateTime型の現在時刻で比較する方法を 纏めたいと思います。テーブル定義を変えるのは大変なので 覚えておくと便利かもです。 予約可能日: @g08m11.reserva…

【rails】postしたパラメータをDBへ登録する時に心がけたい書き方

現在、弊社では新規にrailsアプリを作っています。その際に実装したことを備忘録として残しておきたいと思います。やりたいこと: view側で渡したHash化されたパラメータを登録する →登録内容は「:name,:detail,:status,:start_at, :end_at」 g08m11_tasks.c…

【rails】【PostgreSQL】Mac OSXでPostgreSQLを使って出たエラーと対処法。

railsでpostgresqlを使った時(rake db:migrate)に以下のエラーが出ました。 WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.3rake aborted!could not connect to server: Too many levels of symbolic links Is…

【rails】【PostgreSQL】Mac OSXでPostgreSQLをHello worldしてみた。

現在、絶賛ハッカソン参加中なのですが、 デプロイ対象をHerokuにするかWindows Azureにしようか 迷っていました。どちらも一長一短あるのですが、 今後もサービス運用をしていくこと、 サーバーからの移行コスト(時間的、労力的なコストを重視)を踏まえて…

【rails】【view】int型に時間の「:」を付ける方法

DBのカラムはint型だが、それを「:」付きの時刻で表示して欲しいという 要望があった時に対応した内容を備忘録的に纏めたいと思います。 元データ g08m11.time =>900 対応した内容 g08m11.time.to_s.insert(-3, ":") =>9:00これだと わざわざgsub()やstrtim…

【Rails】image_submit_tagとsubmit_tagの違い

今日、view側の実装を行った時に勉強になったこと。今までsubmit_tagでパラメータを使う場合、当然view側の記述はこのようになる。 <%= submit_tag 'g08m11のブログ', :name => 'g08m11', 'data-role' => 'none' %> そして期待するパラメータはprams[:g08m11…

【rails】今日考えさせられたif文のこと

今日は改めてデータの持ち方について考えさせられたロジックがありました。仕様としては ある期限が現在より過去日であった場合、文言を非表示にする。 それ以外であれば文言を表示するという単純ものです。 その仕様に対し、私は最初、こんなロジックを書き…

【Rails】【Git】Railsルートディレクトリにあるおばけファイルたち!

一度投稿した記事ですが、ハロウィーンという事で再度、投稿しました。 お化けネタですし。。。 怪奇ファイル1 .gitignore 用途 Git用のファイルであり、git管理対象外を指定する際に使用します。メリット productionモードとdevelopmentモードで設定が違う…

【rails】【テスト】rspec内でseleniumをhello worldしてみた

自動化出来ることは自動化するのがエンジニアとしての腕の見せ所。そんな言葉が巷で聞こえてきたこともあり、 seleniumの導入を検討しています。 selenium https://code.google.com/p/selenium/wiki/RubyBindingsという訳でまずはHello worldをやってみまし…

【rails】【デバッグ】railsコンソールでモジュール内のクラスメソッドの呼び出し方法

今、実装しているクラスがモジュール内のため、railsコンソールの呼び出しが 通常と違ってたのでメモがてら残したいと思います。 ソース: module G08M11 class Test1Class def self.test1method return 222 end end end railsコンソールの呼び出し: rails …

【Rails】【Test】【比較】RspecをHello worldしてみた。

前回 【Rails】【Test】【比較】Test::UnitをHello worldしてみた。 http://g08m11.hateblo.jp/entry/2013/09/29/154033から引き続き、今回はRspecでやったことを書きたいと思います。 1・Rspec取得 gem install rspec 2・実行用のファイル(g08_m11.rb)作…

【Rails】【Test】【比較】Test::UnitをHello worldしてみた。

弊社ではスキルアップ向上のため、 「就業時間中に1時間程度をスキルアップに充てる」ということを 今月から試験的に実施しています。 業務の都合上毎日というのは難しいのですが意識的に業務効率を行い、 出来るだけ多く実施するようにしています。 (効果…

【Rails】【mysql】日時型のカラム(deleted_at)に「むりくり」nullを入れる方法

みなさんはRailsはMySQLといった組み合わせになっていますか?Railsはscopeにより生成されたSQLに対しては論理削除が行われていないかチェックするため deleted_at is nullを条件に追加し実行します。その際、MySQLのdeleted_atはデフォルト設定のままだとNU…

【rails】【リファクタリング】俺が出会った「これはあきませんやん。」

今月の頭からリファクタリングをしています。 現在はRails、Rubyに限ったリファクタリングではなく、 一般的な以下のリファクタリングを実行しています。 冗長的ロジックを抽出し、共通ロジックに変更 変数の移動 継承を委譲に置き換える ダウンキャストをカ…

【rails】【セミナー】 Ruby & Rails Biz Con2013に参加してきた。〜ビジネス編〜

今回もRuby & Rails Biz Con2013についての記事を。 前回は増井さんのセッションを元にこの様な記事を書きました。 【rails】【セミナー】 Ruby & Rails Biz Con2013に参加してきた。〜エンジニア編〜 http://g08m11.hateblo.jp/entry/2013/09/07/122424 今…