Annotate おすすめ度 : ★★★★★ テーブルのスキーマをモデルのファイルの先頭にコメントとして挿入してくれます。 後述するFactoryGirlなどにも対応していて、テスト実装の際にも役立ちます。 また、ルーティングもroute.rbに書き出してくれるので、rake routeで確認する手間が省けます。 # == Schema Info # # Table name: line_items # # id :integer(11) not null, primary key # quantity :integer(11) not null # product_id :integer(11) not null # unit_price :float # order_id :integer(11) # class LineItem < ActiveRecord::Base belong
この手のものはrails_admin、Active Adminなどが有名ですが、 DSLを覚える必要があったり色々癖があって選択が難しいです。 どれを選ぼうか迷っていたら、thoughtbot/administrate というものを見つけました。 paperclip、factory_girlなどで有名な thoughtbot社製で、DSL不要とのこと。 ちょっと使ってみたところ、なかなか使い勝手が良く気に入りました。 How to use it コマンド一発で各種ファイルをadmin以下に生成してくれます。これでもう使えてしまいます。 $ rails generate administrate:install 新しいモデルを作成して途中で追加する場合は、以下を実行すれば良いです。 $ rails generate administrate:dashboard Foo あとは config.
はじめに Rails 5.1で導入されたSystemTestCaseを使ってみたので、その記録を残しておきます。 この記事ではユーザーマスタメンテ画面で、JavaScriptを使った郵便番号自動検索機能をテストします。 Rails 5.1のSystemTestCaseとは? いわゆるエンドツーエンド(E2E)テストを実行するためのテストケースクラスです。 このテストケースクラスを使うと、JavaScriptを利用する画面のテストが書けるようになります。 また、サードパーティgemを使う従来の方式ではDatabaseCleanerやDatabaseRewinderを使って、テストデータのトランザクション管理に関する設定が必要でした。 しかし、SystemTestCaseはフレームワーク内でトランザクション管理をしてくれるので、こうした設定も不要になります。 対象バージョン この記事では以下の
Mastodonのコードを読んでみることにしました。 知らないgemが一杯あったのでまずは調べてみることにしました。標準添付ライブラリ、Railsにデフォルトで含まれているものは除きます。また、group :developmentとか、group指定ありのは疲れたのでまた今度。 今回確認したGemfile 実際のコードに目を通しながら調べましたが、勘違いなどあればご指摘頂けるとうれしいです。 hamlit-rails hamlit-rails provides generators for Rails 4. Railsのジェネレータが生成するビューテンプレートをHaml化するhaml-railsのhamlit版のようです。Hamlという点では同じですがhaml gemへの依存をなくせますね。 pg Pg is the Ruby interface to the PostgreSQL RDB
RailsでViewを作りこんでいくと、ifやeach、さらに変数を代入するだけの行とか出てきてしまってあまり綺麗なViewではなくなっていくとこがよくある。 ifとか文字列の連結を省略したいだけなら ActiveDecorator とかが便利 ↑こうゆうやつ でもブログのサイドバーみたいにサイト全体で使うViewがあったりすると、 データはControllerで用意するの? => before_filter使うとか Viewから直接Modelは呼び出したくないよね。。 そもそもViewファイルはどこに置けばいいんだろ? => views/layouts/_sidebar.html.erbとか? SidebarControllerを実装してサイドバーだけajaxでhtmlを取得するとか? いろいろモヤモヤするとこがあって、あんまり最適解じゃない気がする。 でも Cells というgemを使
Sidekiq とは Sidekiq とは Rails アプリで非同期処理を行うためのライブラリです。複数のジョブを同時に実行することができ、メモリを節約することができます。 ということで今回は Sidekiq の基本と使いかたをざっくりと学んでいきたいと思います。 Sidekiq を使ってみる インストール まず前提条件として Redis が必要なのでインストールしましょう。Redis はジョブの管理に使われています。 brew install redis インストールは Gemfile に追加して bundle install するだけです! vim Gemfile # gem 'sidekiq' を追加 bundle install Worker を実装する 非同期処理を行うクラスは Sidekiq::Worker を include してつくります。あとは perform メソッド
はじめに まずどうやってひな形を作るか。ですがこれは bundle gem という、bundlerがデフォルトで提供しているコマンドを利用するのが一番簡単です。 今回はhello_worldという名前でgemを作るので、bundle gem hello_worldとします。 実行すると、このような形でひな形が生成されます。これを使ってgemを開発していくことになります。 gemspec Gemの作成でまず大事になるのが gemの名前.gemspec というファイルです。例えば上記で生成したひな形だと # coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'hello_world/version' Ge
目的/動機 Rails用gemを作成した時に 作成したgem用のファイルを新規作成したり、 .gitignoreに特定のファイルを追加したかった。 他のgem(figaro, devise, rspec)だと rails generate xxx:install でそれらしいことをしているが、 調べても簡単に目的のページに辿り着けなかったので、ここにまとめた。 事前定義 自分が作ったgemのモジュール名を仮に Xxx としておく。 xxx:install の定義 require "rails" module Xxx # Base=引数は自由に取れる NamedBase=引数を一つ取る class InstallGenerator < ::Rails::Generators::Base # インスタンスメソッドが順番に実行されるので、 # test1 # test2 # test3 # と標
最近個人的に作った写真共有サイトを公開しました。 photoll - スポット写真共有サイト この写真共有サイトで実際に使っているおすすめGemを晒してみます。 あと、おまけで使ってないけど便利そうなGemとかも紹介。 一人で1からWebサービスを作る過程を書いた拙作のブログエントリもよかったら見てください。 【1人でWebサービス開発】新米Railsエンジニアが無謀にも写真共有サイトを作りました だいぶ長いですが、Gemfileをそのまんま載せました。簡易説明付き。 主要なGemをあとで説明します。 source 'https://rubygems.org' gem 'rails' gem 'mysql2' gem 'haml-rails' # HTMLを簡潔に書ける gem 'sass-rails' # CSSを効率的に書ける gem 'bootstrap-sass' # Twitte
ハラが減ってるので、差分の作業だけメモっていく。 unreadは既読、未読的なやつができる。 public_activityは「○○から☓☓にいいね!がありました」みたいなやつができる。 この2つを組み合わせて、「○○から☓☓にいいね!がありました」が未読から既読にできるようにする。 それぞれのgemのことはそれぞれのギッハブに書いてあるからつぶさに読め。 https://github.com/pokonski/public_activity https://github.com/ledermann/unread 手順的にはpublic_activityを導入してから、そのactivityに対してunreadを絡ませることになる。 そこで最初に困るのが、gemなんでunreadのacts_as_readableを書く場所がない、ということなんだけど これは、元クラスを継承したクラスを作れば
Photo by Daniel Morrison 中村です。 先日、弊社エンジニアがPythonの便利なライブラリをいくつかご紹介する記事を書きましたが(後でリンク貼りますね)、paizaのメイン言語はRubyなので、Pythonの次はRubyの便利なgemについても書こうと思います。 今回挙げるのは、Railsと組み合わせて実際にpaizaの開発に利用しているものばかりです。 「最近Rubyを使い始めたばかり」「自分もRubyでWebシステムの開発をしてみたい」という方の参考になればと思います。 ■Rubyを使い始めるとよく耳にする「gem」とは? gem(じぇむ)とは、ざっくり簡単に言うと決まったフォーマットで作られたRuby用のライブラリで、フォーマットさえ守られていれば誰でも作って公開できます。(そのぶん品質に保証がないというのは注意点かもしれません) 今回紹介しているものも含め、
Post author:sider Post category:Other Reading time:8 mins read Post published:2015-03-12 RuboCopというRuby向けの静的解析ツールについてご紹介致します。 SideCIでも昨日からRuboCopによる自動コードレビュー機能がお使いになれるようになりました。ぜひこの機会にRuboCopをお試し頂ければと思います。 RuboCopについて、RuboCopのRails向けオプション、バグに繋がりやすい内容だけを検出するlintオプションなど、規約以外の部分で役に立つオプションについても紹介しておりますので、ぜひご一読下さい! Table Of Contents RuboCopとは RuboCopを利用するメリット RuboCopのインストール RuboCopの基本的な使い方 -R(--rails)オプ
先日ブログサイトをRailsで自作したときに本文をMarkdownで書けるようにしました。併せてソースコードのシンタックスハイライトも実現したのですが、とても簡単だったので書いておきます。 使ったもの Rails (5.0.1) Redcarpet gem (3.4.0) Rouge gem (1.11.1) 普通にRedcarpetを使う場合 そもそものRedcarpetの使い方はこのような感じです。 renderer = Redcarpet::Render::HTML.new(options) # バッククオート3つで囲むフォーマットに対応 markdown = Redcarpet::Markdown.new(renderer, fenced_code_blocks: true) # markdownのテキストをHTMLに変換 html = markdown.render(conten
@user .tag_list = " awesome, slick, hefty " @user .save @user .reload @user .tags => [ #</p><actsastaggableon::tag id:="" 1,="" name:="" "awesome",="" taggings_count:="" 1="">, #<actsastaggableon::tag id:="" 2,="" name:="" "slick",="" taggings_count:="" 1="">, #<actsastaggableon::tag id:="" 3,="" name:="" "hefty",="" taggings_count:="" 1="">] こんな感じで動作します。これを投稿画面のUIを通じて行うためにはviewに少し手を入れる必要がありますが、そ
Flickr: cambodia4kidsorg's Photostream acts-as-taggable-onはタグの追加、削除、関連するオブジェクトの取得、タグクラウドなどのタグを管理するためのgemです。 今回は、Railsでacts-as-taggable-onでタグ管理を行う方法について説明します。 動作確認 Ruby 2.2.0 Rails 4.2.0 acts-as-taggable-on 3.4.4 目次 acts-as-taggable-onのインストール acts-as-taggable-onの基本的な使い方 acts-as-taggable-onを使ってユーザー管理にタグ機能を実装してみる Bootstrap Tags Inputを使ってユーザーのタグ入力を簡易にする 同じタグを保持しているユーザーを表示する 1. acts-as-taggable-onのインスト
これは何? レスポンスタイムが遅くて辛いけど原因が特定できないときに役立つツールをまとめてみました Rails以外でも使えるものも一緒くたに書いているけど、気にしない! やらないこと それぞれのツール詳細な説明 気が向いたら個別記事を書く 環境 Rails 4.2.* ruby 2.3.* New Relic パフォーマンス監視サービス 運用フェイズ アクション実行時にどの処理にどれだけ時間が掛かったかをメトリクス収集してくれる 参考 newrelic - New Relic の各製品紹介: New Relic ってアプリケーションパフォーマンス監視ツールじゃないの? - Qiita 以降のツールは基本的には開発、テスト時に使用するやつです rack-mini-profiler パフォーマンス計測ツール(gem) アクション実行時に、ブラウザにレンダリングに掛かった処理の時間を表示してくれ
こんにちは。tkotです。今回はrailsのgemについて。 オススメのgemについて紹介する記事は頻繁に取り上げられるのですが、その反対に使うと弊害が出てしまうgemや、gemを多用することのデメリットについて解説されているものはなかなか無いように思います。 今回やや古くなったRailsアプリケーションの保守を行った際に感じた問題点について紹介したいと思います。 サンプルとなる実際のGemfile Rails3.2.xx, ruby2.0.0-pxxxで動作するアプリケーションです。これを古いと感じるか新しいと感じるかは人によると思いますが、よくあるRails4アップデート前のGemfile構成ではないでしょうか。 gem 'haml-rails' gem 'enumerize' gem 'devise' gem 'mysql2' gem 'bcrypt-ruby', '~> 3.0.0
Railsで画像をアップロードし、かつ画像圧縮も行いたい時の実装をメモで残す。 環境 Macbook OSX 10.11.6 Rails 5.0.0 Ruby 2.3 Carrierwave Piet MiniMagick Gem 実装に必要なGemをインストール gem "carrierwave" gem "piet" gem "mini_magick" bundle install --path vendor/bundle Piet Carrierwaveのextensionとして画像圧縮を行えるようにするGem 圧縮を行う類似のGemがいくつか存在するがPietを採用 トータルダウンロード数 比較 piet : 242,713 carrierwave-imageoptimizer : 97,947 jpegoptim .jpeg画像の圧縮で使用するパッケージ brew install
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes 第4回 デバッグお役立ちツール『Better Errors / Rails Footnotes』 (松永紘) 2013年6月 Railsアプリケーションに限らずWebアプリケーションを開発する際、エラーが発生したり、意図している挙動と違ったりとデバッグを行う場面は多いですよね。ですが多くのプログラムからなるWebアプリケーションの場合、そのデバッグを行うのも一苦労です。 今回はそんなデバッグに役立つツールを2つご紹介します(*1)。 1つ目は「Better Errors」(*2)です。 Railsを使ったことがある方なら誰しもが一度は目にしたことがあるエラー画面。とてもシンプルな作りになっています。 エラークラスやメッセージ、バックトレースなど
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く