railsがんばる子

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

ActionMailerを使ってる時にERBテンプレートでエラーしたときの原因特定方法

ActionMailerにて、erbテンプレートを利用することはよくあると思いますが、開発中にエラーが起きても下記の様に原因がよくわからないことがあります。 > Mailer.sth(@order) => #<ActionMailer::Base::NullMail:0x007f93bf3c8638> ERBテンプレートだけを検証することで、原因を探ることが出来ます。 > ERB.n</actionmailer::base::nullmail:0x007f93bf3c8638>…

rubyでGoogle Sheets APIとGoogle Drive APIを使ってみた。

みんな大好きExcelファイルをシステムで自動生成してメールで送付してほしいという案件にあたりました。 そこで、みんな大好きGoogle様のAPIを使ってExcelファイルを生成しました。(※ なぜRubyXLという便利なgemを利用しなかったのかはこの記事の最後をご参…

/xxx.txtなどのアクセスを受けた時、MissingTemplateエラーが出力される

何が起きたのか /xxx.txtなどのアクセスを受けた時、MissingTemplateエラーが出力される 概要 404.txtをrenderしようとするが、404.html.erbなどHTMLファイルしか用意していないことが原因である。 なるほどね。 まあ、当たり前ですよね 解決策 Railsで対応…

Rubyの正規表現を複数行に分けて名前付きキャプチャをする

目的 整頓されていないテキストデータをrubyで取り扱いたい コンテンツデータを作る人は、プログラマーではないことが多いので、スペースや改行、フォーマットなどを気にしない 解決策 正規表現でキャプチャする 名前キャプチャを出来ると便利(可読性UP) …

railsでgoogleのclient idを拾う

Google Analyticsではgoogleのclient idを一意にしてユーザの特定を行っているようです。 こんなやつです。 gyazo.com cookieに_gaというキーで登録されており、サーバーに送信していることについ最近きがつきました。 たとえば、ホットペッパーさんのサイト…

RankedModelをSTIで使う時にハマった

Rails 4で作るドラッグアンドドロップで表示順を変更できるサンプルアプリ(スクリーンキャスト付き)などで有名なRankedModel。 RankedModelを知ってから、順序を指定するようなモデルではRankedModelを利用しています。 本日はRankedModelをSTIを利用したと…

米国AppStoreで有料アプリを購入する

米国AppStoreで有料アプリを購入する 概要 日本のAppleIDでは米国のアプリをダウンロードできない 日本のクレジットカードは、米国のAppleIDの決済方法に指定できない たとえPaypalを使ってもダメなようです 米国のAppleIDで最初にアプリを購入するときは、…

Rails5セットアップしてみました

Rails5が気になってきたので、ちょっとだけ試してみました。 デフォルトのWeb ServerがWEBrickからPumaになっていて「初動が爆速になったな」という印象を受けました。 (開発中のプロジェクトがモジュール多すぎて、起動が遅いというのもありますが...) 環境…

検索用フォームのオブジェクトをnewするときは#attributes

検索用フォームのオブジェクトをnewするときは#attributesを使うと良さそう。 class HogeSearchForm include ActiveModel::Model attr_accessor :id, :price, :number, :tel, :tel_search_index, end @hoge_search_form = HogeSearchForm.new(@hoge.attribut…

font awesome update

awesomeのdocをみてて、使えないフォントとかがある場合はアップデートすると解決するみたいです。 font awesomeのアップデート bundle update rails-assets-fontawesome

haml placeholderで改行する

placeholderのテキストを改行したい。 改行したいところに&#13;&#10;を記載することで、実現できるとのことだったが動作しなかった。 #=> 改行されなかった = text_area_tag :hoge, '', class: 'form-control', rows: 5, placeholder: '一行目&#13;&#10;二行…

N+1の原因

N+1の原因 includesしていない 常識なので、割愛 includesしているが、order、allなどActiveRecordの操作をしている http://stackoverflow.com/questions/27862670/rails-has-many-through-and-n1 対策 allやorderを代替手段に変更する ActiveRelationが複数…

シェルでの入力操作

control + w カーソルの位置から、前のスペースまでを削除 control + k カーソルの位置から、文末までを削除 control + y 行頭からカーソル位置までを削除 control + l スクリーン再描画 MOVION.net » [Linux]シェルでの入力操作(Ctrl-U,Ctrl-W)など

coffee scriptにくっついてる@変数はなんだろう?

coffee scriptにくっついてる@変数はなんだろう? @はthis.に展開される。 @hogeはthis.hogeとなる CoffeeScriptの@について再び | ひげろぐhigelog.brassworks.jp

delayed_jobについてのメモ

はしらせる RAILS_ENV=production bundle exec bin/delayed_job start queueをみる http://localhost:3000/jobs

has_manyで外部キーを設定する

分析用のテーブルなどで関連を持ちたい場合、関連先のテーブルに分析用レコードのidを持たせることはとてもおかしいです。 そこで分析用のテーブルに関連先のidを保存して、関連を貼るときに使いました。 そもそも分析用のテーブルを作るのは、アプリケーシ…

RailsのURL生成ヘルパーにて、違うホストのURL+クエリストリングを生成する

RailsのURL生成ヘルパーにて、違うホストのURLを作ろうとした時に壁にあたりました。 違うホスト、かつ、クエリストリングを追加するパターンです。 hoge_tokenを付与。 > url = xxx_url(@request, {hoge_token: 111}) => "http://localhost:3000/xxx?hoge_t…

urlを生成するときに、ホストを変える

xxx_url(host: host_name)

mapでrecieverを破壊するパターン

mapは新しく集合を作るメソッドだが、ブロック引数を操作するとレシーバーを破壊する [8] pry(main)> al = [{k: 'initial_1'}, {k: 'initial_2'}] => [{:k=>"initial_1"}, {:k=>"initial_2"}] # 元のデータを破壊していない [9] pry(main)> al.map{|e|e[:k]=…

IDEA REST Client

REST Client Tools > Test RESTful Web Service で REST Client が起動する。 URL と Query string parameter を入力して実行するとレスポンスを取得できる。 HTML/XML/JSON に整形して閲覧可能。

OSX 空ディレクトリに.keepを作る

sh

find . -type d -empty -print0 |xargs -0 -I % touch %/.keep 参考ページ ありがとうございます!! 空のディレクトリをgit管理下に入れるワンライナー(empty directories) | アプレンティス プラクティス

1行の時は波括弧、複数行の時はdo-endという暗黙のルール

1行の時は波括弧、複数行の時はdo-endという暗黙のルール http://d.hatena.ne.jp/shunsuk/20081114/1226661036 文化というだけで明確な理由はないようです

最終的なゴールを決めるためのファシリテーション

Question。「最終的なゴールはなんですか?」 何かをやるときに最終的なゴールを決めてから動くのはとても重要なことだと思います。 しかし、最終的名ゴールを決めるのはとても難しいことです。 取り組むのが難しい疑問・課題は違う角度から考えてみることも…

コミットハッシュでプルリクを検索すると、どのプルリク華道家がわかって便利

表題の通り。

haml view以外でhamlを使う。そして、ヘルパーも使いたい!

template = File.read("file_path") haml = Haml::Engine.new(template) base = Class.new do include ActionView::Helpers::NumberHelper end.new haml.render(base, params)

rails migrateとrollbackの両方ができなくなってしまった

教訓 migrationファイルは手動で編集しないこと カラムを変更するなど、rollbackが出来ないmigrationファイルを作成しないこと 事象 ステージングでdb:migrateとdb:rollbackが効かなくなりどうしょうもなくなってしまった。 原因 migrate済みのファイルを二…

haml フォームの外側から要素を送れるボックス

= form_tag xxx_path, id: 'hoge_form' do .. something = text_area_tag :comment, '', form: 'hoge_form' 参考情報 会社の同僚が書いたコードを参考にさせていただきました、ありがとうございます!

OSXで現在日付をテキストエディタなどに貼り付けるショートカット

osx

shift command }で2015年4月18日土曜日な感じのが出ます。 設定方法 AppStoreでWordServiceをインストール 環境設定 > キーボード > ショートカット > サービス http://gyazo.com/3ffacef9b4e9866fcafab8112bfd0d94 参考にさせていただいたました、ありあざ…

ruby scan 文字列を字数で分割

scanで文字列を分割できるんですね。 すごーい。 [8] pry(main)> "aaaabbbcc".scan(/.{1,5}/) => ["aaaab", "bbcc"] [9] pry(main)> "aaaabbbcc".scan(/.{1,3}/) => ["aaa", "abb", "bcc"]

has_one throughは、includesで代替可能

has_one throughは、includesで代替可能 has_one :fuga has_one :hoge, through: :fuga default_scope -> { includes(:hoge).references(:hoge).where(hoge: {id: xxx} } has_one :fuga default_scope -> { includes(fuga: :hoge).references(:hoge).where(h…