baronyan's blog

linux,macでruby、railsでの開発をしていく中で知ったこと、備忘的なことなどを書いていきます。

Nokogiriでhtmlソースを取得するメソッド

contentメソッド または bodyメソッド (紛らわしいが、bodyメソッドはbodyタグ内だけが取れるわけではない)

ActiveAdminをカスタマイズしてDBレコードのcsv書き出しと取り込みを簡単にできるようにしてみました。

Railsアプリの管理画面を簡単に作成できるActiveAdminというgemがあります。 このgemはかなり便利で、crud操作はもちろんのこと、便利な検索(Filter)や、 csv、xml、jsonでのダウンロード機能も提供してくれます。さらにactive_admin_importableというgem…

ActiveRecord経由でidを付け替える方法

book = Book.find(1) book.id = 35 book.saveとするとidを変更できそうなものですが、uniqueness制約を付けている場合、 そのuniquenessカラム群がユニークであるにも関わらず、自分自身を指して 「uniquenessカラムが同じで別idのレコードが存在する」と更…

gitでファイルの存在をなかったことにする

Git

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch ファイル名' HEADしてから、git push --force origin masterで強制pushをすることで、最初からそのファイルのコミットがなかったことにできます。(--cachedを付けるとワーキングフ…

helper抜粋(rails4.1.4)

NumberHelper アクティブサポート(activesupport) - RailsドキュメントTextHelper アクティブサポート(activesupport) - Railsドキュメント

helperメソッドをview以外から呼ぶ

ApplicationController.helpers.メソッド例:ApplicationController.helpers.number_to_human_size(filesize) → ○○ MB

ActiveModelのカラム名一覧を取得するメソッド

モデルクラス.attribute_names またはモデルクラス.column_namesとすることで、カラム名が配列で返却されます。

bashスクリプト(sh)で、bashrc内定義aliasを使う方法

■shに実行権限を付与している場合 先頭行に以下を記述 #!/bin/bash -i■bashコマンドで実行する場合 bash -i hoge.sh

ActionMainlerで日本語を使う

mail-iso-2022-jp というgemが便利です。Gemfileに登録してbundle installで読み込んだら 後はmailクラスでrequireするだけです。

railsのログのカラー表示(ANSIカラーコード)を止める

ログのカラー表示は見やすくてとても便利です。 ただ、stdoutではカラー表示されるのですが、logファイルをview等で見た場合、カラーコードが文字列として表示されてしまい、見づらいものとなります。カラー表示を止めたい場合には、config/application.rbに…

redirect先のURLを取得するスニペット

Net::HTTP.get_response(URI.parse(#{url}))["Location"]

railsでDateクラスを検索条件に使う方法

railsのActiveRecordでdatetime型を検索する場合、検索条件には TimeインスタンスかActiveSupport::TimeWithZoneインスタンスが指定できます。日付の区切りを指定したい時などにDateインスタンスを条件に使えると便利なのですが、 こちらはActiveRecordの検…

cronでbundlerとrvmを使う

cronのコマンドの最初にこれを実行しておくと、cronで対話型シェル同様にbundlerとrvmを使ったプログラム実行ができます。 source $HOME/.rvm/scripts/rvm; rvm #{ruby version};

utcで保存しているDATETIMEカラムの中身をJST(Tokyo)で表示する方法

.in_time_zone('Tokyo') を使って都度JSTに変換します。例 Book.updated_at.in_time_zone('Tokyo').to_s

rails上でカラムの型を取得する

Bookを、booksテーブルを表すActiveRecordモデルだとすると、 Book.columns_hash['isbn'].typeで、isbnカラムの型を取得できる。戻り値はシンボルで、 :string :integer :float :datetimeなどがある。

【正規表現】否定先読みと否定戻り読みを使って、重複なく、同一文字が続く箇所を指定する

「t」が3文字以上続く箇所のみをピックアップする例 (?

irbで式評価値の出力を一時的に抑制する

conf.echo = false戻すにはconf.echo = true

postgresqlでnbspを含む行を検出

where hoge like '%\xc2\xa0%' ついでにrubyでnbsp削除は .gsub(/[\u00A0]/, ' ')

ActiveRecordeのwhereメソッドでlikeを使う

Book.where('tag = ?', tag_b)これを↓こうするとlikeが使えます。Book.where('tag like ?', "%#{tag_b}%") Book.where("tag like '%?%'", tag_b) とか Book.where('tag like ?', tag_b) とかだと動きません。 直感的じゃないのでwhere以外で実現した方が良い…

Net::HTTPのリクエスト/レスポンスの中身を表示

http.set_debug_output $stderrget/postでハマった時はこれをon!

Net::HTTPでSSLアクセス

uri_string = 'https://hogehoge' uri = URI.parse(uri_string) http = Net::HTTP.new(uri.host, uri.port) if uri.port.to_s == '443' http.use_ssl = true end http.start do 以下略 証明書関連でこける場合には↓のページが参考になりそうです。 http://bl…

macにvnc接続

mac

Mac OS X 10.5にはデフォルトでVNCサーバの機能が組み込まれているらしい。 以下ページを参照 http://l-w-i.net/t/macosx/vnc_001.txt

macからリモートデスクトップ接続

mac

http://www.microsoft.com/ja-jp/download/details.aspx?id=18140 からRemote Desktop Client for MacをDLしてインストールします。(Dockにアイコンが追加されます。)

macでAppStore以外のところからダウンロードしたアプリを起動する方法

mac

参照 http://mac.kumadoumei.net/2012/08/mac-appstore.html

macのウィンドウ整列ツール

mac

Shiftitubuntuのように左上に割付、等ができます。DLは↓ http://code.google.com/p/shiftit/通知バーに「Shift」と表示がでるのでそこをクリック

USキーボードでチルダ(~)を入力

mac

よく忘れるので。。「tabキーの上!」

macのiterm2で、新規ウィンドウorタブにディレクトリを引き継ぐ方法

mac

オプションで次のように設定します。Profiles -> General working directory を Reuse previous session’s directory に設定

psでdelayed jobsのプロセスを見つける

ps -ef |grep jobs:wor[k] []で一文字囲むことで、このコマンド自体が検索結果に表示されるのを防止できます。

fizzbuzz単純解

(1..100).map{|a| a}.each_with_index.map{|org, i| if(org % 3 == 0 && org % 5 == 0) then 'fizzbuzz' elsif((i+1) % 3 == 0); 'fizz' elsif((i+1) % 5 == 0); 'buzz' else org.to_s end}

unicodeの方向制御文字(LRMまたはRLM)を除去する(ruby1.9)

#方向制御文字の除去 def self.removeLRM(str) return str.gsub(/[[\u200E][\u200F][\u202A][\u202B][\u202C][\u202D][\u202E]]/, '') end