みかづきメモ

学習したことのメモとか、日記とか、備忘録。

Ruby

rubyzip でパーミッション付きで解凍したい

タイトルまま。 require 'zip' Zip::File.open(file) do |zip_file| zip_file.each do |entry| entry.restore_permissions = true # ここ! entry.extract end end このままだと、ディレクトリが来たときとか死ぬ気がするけど、それはそれで。

Administrate の Enumerize プラグインを作った

最近、管理画面に Administrate を採用していて、かつ enum の i18n とかで Enumerize を使っているので、良い感じにするためのプラグインを作りました。 administrate-field-enumerize | RubyGems.org | your community gem host 他の Field と同じように、…

macOS で rmagick をインストールしたい

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…

Rails で PayPal の Express Checkout を導入してみる

Ruby on Rails で、 PayPal の Express Checkout を導入してみます。

rails_admin で表示するフィールドをカスタマイズしたい

例えば、 created_at とか updated_at とかはいらないんだけど、他は表示したい。 あと、追加で comment みたいなのも表示してほしいとかそういった場合: # @ config/initializers/rails_admin.rb config.model 'User' do include_fields_if do not name.mat…

find_by_sql でも preload したい

ActiveRecord のクエリじゃきついような時、 find_by_sql を使うと思うのですが、 こっちは preload ができないのでしたかった。 ちなみに Rails 5 です。 users = User.find_by_sql(["SELECT * FROM ...", id]) ActiveRecord::Associations::Preloader.new.…

Rails で ROLLBACK された理由が知りたい

レコード作成時、なにも COMMIT されなかったり ROLLBACK されたりして、 理由がわからなかったので調べる方法。 song = Song.new(title: "恋愛サーキュレーション") song.save # -> ROLLBACK logger.debug song.errors.inspect # -> {message: "すでにある…

Rails でエラーメッセージを良い感じにしたい

rails-i18n を入れてくれるとだいたい良い感じにしてくれるんですけども、 「なんかちがうんよー」みたいな時もあります。 例えば、次のようなとき: # attachment.rb class Attachment belongs_to :illust mount_uploader :file, ImageUploader end # illus…

Ruby で匿名クラスをつくりたい

匿名クラスを作りたかった。 @ninomiya = Class.new do attr_accessor :asuka end.new @ninomiya.asuka = "かわいい" 参考: Anonymous Classes In Ruby

gem install で怒られる

Bash on Ubuntu で gem install すると、下のように怒られます。 Error details ArgumentError: parent directory is world writable but not sticky /home/mikazuki/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tmpdir.rb:93:in `ensure in mktmpdir' /home/mika…

rugged を使うときハマったこと

rugged を使って、 Git を使ったアプリケーションを作っている時にハマったことをメモしてます。

Rails のコールバックで、新規作成時のみに呼ぶようにする

Ruby on Rails にて、 before_action などのコールバックにて、 例えば INSERT 文が発行される場合のみに呼ぶようにする方法のメモ。

Ruby で LINE の Bot を作成する

どうやら、 LINE の Bot を作るための API が公開されているようなので、 早速作ってみようと思います(若干乗り遅れた感はありますが)。

AWS (Amazon Linux) で Rails アプリケーションを動かす

いつか書いた下の記事の続きです。 mikazuki.hatenablog.jp

cocoon を使って、ネストしたフォームを作る

Ruby の仕事しか降ってこない私です。 C# のお仕事待っています。 cocoon という gem を使って、ネストしたフォームを作る方法のメモです。

fullcalendar-rails で日本語対応をする

いい感じのカレンダーを簡単に作ることができる、 fullcalendar 。 初期状態のままでは英語のみとなっているので、日本語対応をしようと思います。

Rails でフォロー機能を実装したい

すでに情報が腐るほどあるフォロー機能ですが、理解を深めるためにも、 自分の言葉でまとめ直してみます。

変な URL にリダイレクトされるのを治す

Rails にて、 http://123-456-789-123 みたいな、 IP アドレスを - でつなげたような アドレスにリダイレクトされてつらいことになったので、解決方法をメモしておきます。

Rails で JSONP を返したい

Ruby on Rails で、いい感じに JSONP を返したい。 JSON の中身とか自由に設定したい。 そういう時のやり方。

Rails で、 JSON 中に HTML を含める

学校でもバイト先でも Rails を使っているせいで、 C# をする時間がない。 けども Rails 記事を書いていくよ。 Rails にて、hoge.json の時のレスポンスに、 HTML を含めてみます。

omniauth-google-oauth2 で認証時にハマったこと

前回に引き続き、こんかいも OmniAuth 関連です。 omniauth-google-oauth2 にて、ちょっとハマったことがあるので、メモしておきます。

OmniAuth + devise で、いろいろな外部認証を追加する

Ruby on Rails にて、 devise + OmniAuth で、 Twitter などの外部認証を追加します。 有名な組み合わせなので、日本語資料も多いですが、一応。

gem を作る

先日 Electron で遊ぶと言いつつ、ずっと rubygem を作っていました。 今後も作ることはあるかもしれないので、メモしておきます。

Rails アプリで Google アカウントでログインしたい

Ruby on Rails でログインするようなサービスを作るときに、 ID/PWではなく、 Twitter や Facebook, Google アカウントでログインさせたいことがしばしばあります。 私の場合は、 Google アカウントでログインさせたいので、その処理方法をメモしておきます。

OS X El Capitan で therubyracer をいれる

いつもどおり Ruby + Rails 環境整えて、いざ bundle install すると、 therubyracer まわりでエラーが起きたので、メモです。

Rails + unicorn + nginx で動かす

普段、 nginx でサーバーを動かしているので、 ついでに Rails + unicorn も動かしてみます。

Carrierwave で、 version のサイズを動的に変更する

そんなことより風が強い

mixpanel を使ってみる

mixpanel という、アクセス解析ツールの存在を教えてもらったので、 とりあえず、私が理解した分だけメモしておくことにしました。 多分、間違えてるところがいっぱいあると思うので、記事見た人で分かる人がいたら 教えてくれると嬉しいです(;w;)

gem install が遅い時

仮想マシン上で環境構築してる時、 gem のインストールが終わらなかった。 その時の対策。

rubyzip で、日本語パスを含んだファイルを解凍する

どうやら、 rubyzip で日本語を含むファイルの zip を解凍すると、いろいろ死ぬっぽい。 その対策。

rubyzip で Windows 向けに ZIP ファイルを作る

rubyzip で ZIP 圧縮して、 Windows でそれを解凍したら、 日本語を含むファイルが文字化けしている。 それだと困るので、その対処方法。