railsがんばる子

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

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…

秒数を時分秒に変換します

Time.at(100).utc.strftime('%X') 探してました素晴らしいこれありがとうございます。 Rubyで秒から「時:分:秒」を出力する方法 - 惰眠と論理と指揮棒とlogictkt.hatenablog.com

haml class 条件分岐

素晴らしいです、ありがとうございます。 Haml で if ○○だった時だけ classを付ける - 納豆には卵を入れる派です。d.hatena.ne.jp

多次元配列を作成する permutation

a = [1, 2, 3] a.permutation.to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] a.permutation(1).to_a #=> [[1],[2],[3]] a.permutation(2).to_a #=> [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]

Geocoderで半径XXm以内の何かを探す。

setupなどは参考サイトで。 僕が使ったのは、near機能です。 ActiveRecordモデル#nearメソッドを使うと、1km以内のレコードとかを探してきてくれます。 かっこいいです。 実行 A.near('35.659, 139.703', 0.6, :units => :km).collect(&:id) #=> 0.6とすると…

throughを使って孫の数を数える

検証用にモデルを作成 bundle exec rails g model a bundle exec rails g model b a:references bundle exec rails g model c b:references bundle exec rake db:migrate モデルに関連を追加 class A < ActiveRecord::Base has_many :b has_many :c, through…

関数の引数がないときはカッコを省略できない

a1 = -> alert 'hi everyone!' a2 = -> alert 'good bye everyone' square = (n) -> n * n a2 #<- This doesn't work, that is require parenthesis a1() CoffeeScript

-> は無名関数の生成っぽい

-> は無名関数の生成っぽい。 CoffeeScript

coffee scriptの勉強。関数再帰呼び出し

フィボナッチ数列から、引数の数字の番目を取得する fibonacci = (n) -> return 0 if n == 0 return 1 if n == 1 (fibonacci n - 1) + (fibonacci n - 2) alert fibonacci 7

Google APIを使ってファイルの親ディレクトリを調べる

仕事しているとGoogleスプレッドシートのURLやらDocのURLやらを教えていただくのですが、親ディレクトリが知りたいときとかあると思います。 コピーして使うときとか、そもそも何が入ってるんだっけ?みたいな。 Webで使い方を調べても良かったのですが、訓…

日付と日付を比較して、何ヶ月先なのかを計算したい

日付と日付を比較して、何ヶ月先なのかを計算したい。 def month_diff(a, b) return 0 if a == b greater_day = (a > b)? a: b less_day = (a > b)? b: a (1..12).each do |num| return num-1 if less_day+num.month >= greater_day end end puts '---- 0 --…

NokogiriでEUC-JPのサイトをパースするときにエラーになっちゃう対策 with livedoor blogの記事タイトル一覧を取得しよう

やりたいこと ライヴドアブログの全記事タイトルとURLのリストがほしい。 実現方法 最新の記事をURLを持ってくる 「前の記事へ」リンクをたどる 「前の記事へ」リンクがページになければ終了 つまづいたこと EUC-JPからUTF-8に変換できない文字「①」などがあ…

ハッシュの時は、両端に余分なスペースを入れない

ハッシュの時は、両端に余分なスペースを入れない {hoge: 1} 逆に、ブロックの時は入れる hoge.each{ |item| do_something }

といあわせ調査のためにユーザーのアカウントでログインする devise編

問い合わせを受けて、調査するときにユーザーさんと同じ画面を見れるといいと思います。 データを抜いてきてもパスワードは暗号化されているので、ログインができません。 そこで、ローカルデータベースのパスワードを変えちゃえばいいと思いました。 これで…

partial templateにクラス変数は使わないこと

@hogeみたいなクラス変数をpartial templateに使うと、同じ命名のクラス変数を定義しないとそのpartial templateが使えなくなってしまうので、やめたほうがいいです。 やってしまって、恥ずかしいです。

rails asset

フロント系のプラグインはrails assets経由でインストールする。 Gemfile gem 'rails-assets-infinite-scroll'

magnum-ciでサブドメインのテストにこけた

magnum-ciでサブドメインのテストにこけた。 同僚に相談したら解決してくださいました。 頭あがらないです。。。 before stepで/etc/hostsに127.0.0.1 subdomain echo "127.0.0.1 subdomain" | sudo tee -a /etc/hosts or sudo sh -c "echo 'something' >> /…

infinite-scrollを使って無限スクロールを実装した

参考ページのみのメモとなります。 infinite-scroll/infinite-scroll infinite-scroll/infinite-scroll · GitHub Rails で Infinite Scroll と kaminari を使いTwitterやFacebookのようなスクロールによる動的ページロードを実現する - Rails Webook Rails …

簡単PDF出力

PDFを出力したいときのためのメモ。 class ClientsController < ApplicationController # ユーザーはリソース受信時にHTMLまたはPDFをリクエストできる def show @client = Client.find(params[:id]) respond_to do |format| format.html format.pdf { rende…

form_authenticity_tokenで認証トークンを作る

formヘルパー使わなかったときにリクエストフォージェリを防ぐためにform_authenticity_tokenで認証トークンを作る。 Railsでは、formヘルパーを使用して生成されたあらゆるフォームにトークンを追加します。従って、この攻撃を心配する必要はほとんどありま…

routingでshallow

railsガイドを眺めていて、忘れてしまいそうなのでメモメモ。 URLダケ。 Ruby on Rails ガイド:体系的に Rails を学ぼう Rails のルーティング — Rails ガイド

form_forでは単数形リソースを自動的に扱えません

ハマったわけではないけど、railsガイドを読んでいて将来ハマりそうだなと思ったのでメモ。 ある長年の未解決バグ が原因で、form_forでは単数形リソースを自動的に扱えません。これを解決するには、以下のようにフォームのurlを直接指定します。 form_for @…

migrationファイルをmvして、やらかした話

rails generateしてmigrationファイルを作って動作確認後、名前が気に入らなかったのでmvでリネームしました。 そのままpushしたらmigrationエラーが起きました。 いやはや、恥ずかしい! NameError: uninitialized constant XxxxYyyyZzzzz

Settings.ymlに定義する基準について

railsにSettings.ymlってあるじゃないですか? 僕の参加しているプロジェクトでは、数値があると必ずSettings.ymlに書きなさいという指摘を受けます。 search_begin = Time.zone.now - 1.days # 指摘:1.daysはSetting.ymlに移動してください 僕的には、すべ…

pryで出た、call 'Hoge.connection' to establish a connectionの対応

pryでモデルをいじろうとしたらエラー え? なんで? [1] pry(main)> Hoge => Hoge (call 'Hoge.connection' to establish a connection) ActiveRecord::Base.clear_cache!したら良いらしい。 [2] pry(main)> ActiveRecord::Base.clear_cache! => nil [3] pr…

EC2のインスタンスがinstance reachability check failed

AWS

EC2のインスタンスをrebootしたらStatus Checksがだめぽ instance reachability check failed Stop→Startで解決しました!! (困ったときの...笑) 参考にさせていただいた神様 http://1192japan-koz.blogspot.com/2013/09/awsec2.htmlP

gitdiffした結果をpatchする

他のパソコンに作業内容を反映させたいとき、ふつうはリモートなリポジトリにプッシュされるかとおもいますが、特殊な事情により出来ない場合もあると思います。 そこでpatchを作って、取り込む方法をご提案いたします! patchを作りたいdirectoryで下記コマ…

SSLProtocolでSSL2.0とSSL3.0を無効にする(apache2.0)

httpd.conf SSLProtocol All -SSLv2 -SSLv3 httpd における POODLE SSLv3.0 脆弱性問題の解決方法 (CVE-2014-3566) - Red Hat Customer Portal

俺の参加してるプロジェクトでbodyがhtmlの外にはみ出てる。

capybaraでhave_contentしたら、こんなエラー Ambiguous match, found 2 elements matching xpath "/html" body要素がhamlの外にはみ出てたので、要素が見つからなかったようです。 畜生。 !!! %html something... %body something... 正しくは下記。 !!! %h…

capybaraの途中でブラウザによる確認をしたい! rspec

Gemfile gem 'launchy' rspec上での画面みたいところで save_and_open_page Capybara + Launchy で RSpec テストをブラウザで確認 | EasyRamble Capybara + Launchy で RSpec テストをブラウザで確認 | EasyRamble