Ruby
タイトルまま。 require 'zip' Zip::File.open(file) do |zip_file| zip_file.each do |entry| entry.restore_permissions = true # ここ! entry.extract end end このままだと、ディレクトリが来たときとか死ぬ気がするけど、それはそれで。
最近、管理画面に Administrate を採用していて、かつ enum の i18n とかで Enumerize を使っているので、良い感じにするためのプラグインを作りました。 administrate-field-enumerize | RubyGems.org | your community gem host 他の Field と同じように、…
rmagick のインストールがしたかった。 bundle コマンドで rmagick を入れようとすると、下のようなエラーが出る。 ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. current directory: /usr/local/lib/ruby/gems/2.4.0/gem…
例えば、 created_at とか updated_at とかはいらないんだけど、他は表示したい。 あと、追加で comment みたいなのも表示してほしいとかそういった場合: config.model 'User' do include_fields_if do not name.match /_at$/ end field :comment end こんな…
ActiveRecord のクエリじゃきついような時、 find_by_sql を使うと思うのですが、 こっちは preload ができないのでしたかった。 ちなみに Rails 5 です。 users = User.find_by_sql(["SELECT * FROM ...", id]) ActiveRecord::Associations::Preloader.new.…
レコード作成時、なにも COMMIT されなかったり ROLLBACK されたりして、 理由がわからなかったので調べる方法。 song = Song.new(title: "恋愛サーキュレーション") song.save # -> ROLLBACK logger.debug song.errors.inspect # -> {message: "すでにある…
rails-i18n を入れてくれるとだいたい良い感じにしてくれるんですけども、 「なんかちがうんよー」みたいな時もあります。 例えば、次のようなとき: class Attachment belongs_to :illust mount_uploader :file, ImageUploader end # illust.rb class Illus…
匿名クラスを作りたかった。 @ninomiya = Class.new do attr_accessor :asuka end.new @ninomiya.asuka = "かわいい" 参考: Anonymous Classes In Ruby
やってる事的には Vagrant だとかで better_errors を使うのと同じ感じですが、 ちょっと IP の確認が面倒だったので、メモしておきます。 better_errors は通常、 localhost でのみ動作するように設定されています。 なので仮想マシン、例えば Virtual Box …
Bash on Ubuntu で gem install すると、下のように怒られます。 Error details ArgumentError: parent directory is world writable but not sticky /home/natsuneko/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tmpdir.rb:93:in `ensure in mktmpdir' /home/nat…
rugged を使って、 Git を使ったアプリケーションを作っている時にハマったことをメモしてます。 Rugged::SshError: username does not match previous request 下のような感じで、リポジトリを clone しようとすると怒られます。 credential = Rugged::Cred…
Ruby on Rails にて、 before_action などのコールバックにて、 例えば INSERT 文が発行される場合のみに呼ぶようにする方法のメモ。 create が呼ばれる際、バリデーション前に set_uuid を実行する場合は、 before_validation :set_uuid, on: :create とい…
この記事を見て、やってみようと思ったのでメモしとこうかなと。 タイトルに Let's Encrypt のと含めてますが、他でも問題ない(はず)です。 HTTP/2 への mruby 活用やこれからの TLS 設定と大量証明書設定の効率化について とりあえず、まずは ngx_mruby を…
すでに情報が腐るほどあるフォロー機能ですが、理解を深めるためにも、 自分の言葉でまとめ直してみます。 Rails で、 Twitter や app.net などにある、ユーザーどうしのフォロー機能を 実装したいとします。 どうやら、いい感じの gem が存在しているようで…
Rails にて、 http://123-456-789-123 みたいな、 IP アドレスを - でつなげたような アドレスにリダイレクトされてつらいことになったので、解決方法をメモしておきます。 発生してた状況は、下のようなもの nginx を SSL アクセラレータとして使用中 上に …
学校でもバイト先でも Rails を使っているせいで、 C# をする時間がない。 けども Rails 記事を書いていくよ。 Rails にて、hoge.json の時のレスポンスに、 HTML を含めてみます。 通常の JBuilder を使った JSON は、こんな感じ。 json.set! ここに、 app/…
前回に引き続き、こんかいも OmniAuth 関連です。 omniauth-google-oauth2 にて、ちょっとハマったことがあるので、メモしておきます。 GitHub - zquestz/omniauth-google-oauth2 Google OAuth 2 を使って、外部認証ができる omniauth-google-oauth2 ですが…
先日 Electron で遊ぶと言いつつ、ずっと rubygem を作っていました。 今後も作ることはあるかもしれないので、メモしておきます。 まず、雛形を作ります。 $ bundle gem new_gem --test --test 付きで実行することで、テストの雛形も生成してくれます。 つ…
Ruby on Rails でログインするようなサービスを作るときに、 ID/PW ではなく、 Twitter や Facebook, Google アカウントでログインさせたいことがしばしばあります。 私の場合は、 Google アカウントでログインさせたいので、その処理方法をメモしておきます…
いつもどおり Ruby + Rails 環境整えて、いざ bundle install すると、 therubyracer まわりでエラーが起きたので、メモです。 qiita.com 上の記事によると、 OS バージョンと libv8, therubyracer のバージョンを それぞれ合わせる必要があるらしいです。 …
普段、 nginx でサーバーを動かしているので、 ついでに Rails + unicorn も動かしてみます。 基本的にはこの記事どおりにやっていく。 qiita.com その中で、私が躓いたものだけメモっておきます。 初歩的なものなのは見逃してください。 アクセスしても真っ…
そんなことより風が強い Carrierwave っていう、ファイルアップロードに便利な gem があるんだけれども、 その中にある HogeUploader クラスは、アップロード時に画像を加工できます。 class ImageUploader < CarrierWave::Uploader::Base # RMagick を使っ…
mixpanel という、アクセス解析ツールの存在を教えてもらったので、 とりあえず、私が理解した分だけメモしておくことにしました。 多分、間違えてるところがいっぱいあると思うので、記事見た人で分かる人がいたら 教えてくれると嬉しいです(;w;) Mixpan…
仮想マシン上で環境構築してる時、 gem のインストールが終わらなかった。 その時の対策。 [Vagrant] 「CentOS の box で bundle install や gem install が異常に遅い」問題を解決する方法 Vagrant + CentOS でやっていたので、上の記事で治るかと思ったけ…
どうやら、 rubyzip で日本語を含むファイルの zip を解凍すると、いろいろ死ぬっぽい。 その対策。 下のような構成のファイルを解凍すると、なにか色々おかしくなる。 ruby.zip |-テスト | |- 画像001.png | |- memo.txt 解凍後は、下のように色々変になる…
rubyzip で ZIP 圧縮して、 Windows でそれを解凍したら、 日本語を含むファイルが文字化けしている。 それだと困るので、その対処方法。 調べたところ、 Mac や Linux では文字コードが UTF-8 だけど、 Windows では Shift-JIS だからとのこと。 なので、フ…
Windows で Ruby on Rails の開発環境を作るメモです。 正確には、作った上でそれを快適にするまでのメモです。 環境 ホスト ・ Windows 8.1 ・ Virtual Box 5.0.0 ・ Vagrant 1.7.4 ゲスト ・ CentOS 6.5 基本的な構築はこちらの記事が分かり易いので、それ…