RubyGems.org 新規登録・初期設定(MFA)
- 2021 12/30
Rails で Gemfile に ransack を 0.7.3 で指定して bundle install したら「Could not find xxx in any of the sources」というエラーが出てしまいました。
# Gemfile
# meta search gem 'ransack', '0.7.3' #MIT |
% cap deploy:cold ... * 2013-03-07 21:27:57 executing `bundle:install' * executing "cd /srv/myapp/releases/20130307122736 && bundle install --gemfile /srv/myapp/releases/20130307122736/Gemfile --path /srv/myapp/shared/bundle --deployment --quiet --without development test" servers: ["example.com"] [example.com] executing command ** [out :: example.com] Could not find ransack-0.7.3 in any of the sources |
ransack-0.7.3 がない?
開発環境ではインストールできているし、ステージング環境でもインストールできていたのに、本番環境の構築時には 0.7.3 はなく、0.7.2 が最新のようでした。
% gem search --remote ransack *** REMOTE GEMS *** ransack (0.7.2) ransack_abbreviator (0.0.8) ransack_chronic (1.1.0) ransack_ffcrm (0.7.1) ransack_ui (1.1.0) |
動作上、問題なかったので ransack のバージョンを下げることで対応しました。
Github に公開している gem を直接インストールする方法をメモ。
■ Gemfile
gem 'sunspot_rails', :git => '[email protected]:bakorer/sunspot.git', :branch => "solr-3.6.1" |
・rubygems – Install Gem from Github Branch? – Stack Overflow
Ruby on Rails にて、Devise のログイン処理のエラーメッセージを表示させるように、下記のコードを追加しました。
■ app/views/devise/sessions/new.html.haml
-if alert #error_explanation %h2 Please check messages below: %ul %li=alert |
以上です。
【参考】
・Rails – Devise – Error messages when signing in? – Stack Overflow
Ruby on Rails の Devise にて、保存失敗時に例外を発生させる update_without_password! メソッドを作成しました。
Devise で定義されている update_without_password メソッドでは、保存処理の成功・失敗によって true, false が帰ってきます。
例外を投げる update_without_password! メソッドも定義されているのかと思いきや、無かったので作成しました。
class User < ActiveRecord::Base def update_without_password!(params, *options) if params[:password].blank? params.delete(:password) params.delete(:password_confirmation) if params[:password_confirmation].blank? end clean_up_passwords update_attributes!(params, *options) end end |
以上です。
Ruby on Rails にて、権限管理や認可を扱う「cancan」という gem を使ってみました。
カンタンに導入できて、かなり便利です。
使い方は、下記の記事を参考にしました。ありがとうございます。
・cancan でモテカワ♥愛され権限管理 « blog.udzura.jp
・Rails3.0 で Devise と CanCan を動かす – dimrosの日記
・ASCIIcasts – “Episode 192 – Authorization with CanCan”
以上です。
「WEB+DB PRESS Vol.67」に掲載されている「Ruby わくわくナビ」で紹介されていた「厳選!用途別Ruby/Railsライブラリ・ツール」の一覧をメモ。
「機能の実装」「テスト」「作業の効率化」「運用」をテーマに色々と紹介されていました。
・Pry – an IRB alternative and runtime developer console
・Rubyistよ、irbを捨ててPryを使おう – TIM Labs
・Twiwt:Blog / jugyo : enumerize 便利♡ – Enumerated attributes with I18n and ActiveRecord/Mongoid support
・Web Application Performance Management (APM) : New Relic
・Pow: Zero-configuration Rack server for Mac OS X
・Pow使うならPowder入れておくだァーッ! – Meltdown Countdown
以上です。
Ruby のユーザー認証まわりの処理をしてくれる Gem 「Devise」で現在ログイン中のユーザーIDを取得する方法を調べたのでメモ。
現在ログイン中のユーザーのモデルは current_user で取得できます。
なので、ログイン中のユーザーIDは下記のように書けば取得できます。
current_user.id |
以上です。
Ruby on Rails アプリケーションに、ユーザー認証の仕組みを導入できる「Devise」を使うときに参考になりそうな記事をまとめてみました。
■ 公式
まずは、公式というか、github。
・github:plataformatec/devise
■ Devise の便利サイト(全て日本語)
日本語で一番詳しい Devise のドキュメント。
・Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた – LazyLoadLife
ASCIIcasts さんの Devise 特集。これも分かりやすい。
・ASCIIcasts – “Episode 209 – Deviseの導入”
・ASCIIcasts – “Episode 210 – Deviseのカスタマイズ”
おなじみ「Ruby on Rails with OIAX」のチュートリアル形式の記事。
・第12回: ユーザー認証(1) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX
・第13回: ユーザー認証(2) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX
実際に、Deviseを使ってみたというエントリ。
・Deep valley まとめ版 – RailsでDeviseを使ってみた
・Rails3.0 で Devise と CanCan を動かす – dimrosの日記
・Rails 3.0用にrestful_authentication から deviseに移行してみる – 発声練習
・[Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。
・eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション
■ Devise でハマった
・Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲
手順を間違えたらハマったという記事。手順は大事。
・rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers’ Weblog
以上です。(随時更新予定)
Ruby on Rails にて、erb ファイルから haml ファイルに変換するなら erb2haml という Gem が便利なので、オススメです。
# Gemfile: group :development do gem 'erb2haml' end |
下記のコマンドで、erb ファイルを全て haml ファイルに変換してくれます。
$ rake haml:convert_erbs Looking for ERB files to convert to Haml... Converting: app/views/layouts/application.html.erb... Done! |
ちなみに、変換後も元の erb ファイルは残ったままなので、必要なくなったら削除しておきましょう。
以上です。
【参考】