浜松Ruby会議01 http://regional.rubykaigi.org/hamamatsu01/ の発表資料です。 http://mzp.hatenablog.com/entry/2015/03/29/213909 もあわせてご覧ください。
ginzarb_21.md rails_adminのつらみとオススメGemについて rails_adminのつらみ カスタマイズできるようで出来ない rails_adminをカスタマイズする方法まとめ - Qiita レコード件数が一定以上になると使えない機能 ダッシュボード 何も考えずに各モデルをカウントするのでレコード件数増えるとえらいことになる。 関連を付け替えするフォーム 出したり出さなかったりを一々切り替えるのがめんどい 検索機能がほぼ役に立たない じゃあどうするか プロジェクト用のscaffoldを作る方が良いのでは? 一つのモデルに対するを管理画面を作って大まかなレイアウトを決める それをテンプレート化してlayoutとscaffoldのテンプレートを上書きする コントローラーの構成もテンプレートで上書きできる それ以上の場合はlib以下にgeneratorを書く Rails
Railsアプリケーション構築ガイド¶ 業務でRuby on Railsを利用する人のための、アプリケーション構築ガイド 最終更新日: Feb 03, 2018 Ruby on Railsは、流儀・規則に従うことで効率的なシステム開発が可能となるWebアプリケーションフレームワークです。 レールの上に乗って開発を行っているうちは、 少ないコード量で複雑なアプリケーションを 簡単に実装できる、Railsというフレームワークの強力さ、美しさを体感できるはずです。 しかし、少しでもレールから外れたアプリケーションを実装しようとすると、途端に複雑になるのも事実です。 業務アプリケーション構築の分野では、Railsの流儀とは相容れない実装を強いられる事が多々あります。 レールから外れたアプリケーションをよく考えずに実装すると、 コードが難解になり、システムのメンテナンス性が大きく下がってしまいます。
MQTTによる通信 MQTTクライアントを作成する前に、MQTTでは複数のクライアントがどのように通信を行うか理解する必要があります。 MQTTによる通信では「MQTTブローカ」と呼ばれるサーバが必要です。MQTTブローカが複数のクライアントと接続し、クライアントはMQTTブローカを経由して情報を配信します。MQTTブローカの立ち上げは以下の記事でまとめています。 通信の流れを簡単に説明します。 まず、クライアントはMQTTブローカに対して接続します。 受信側クライアントはMQTTブローカに対して、受信したい情報を登録します。この情報を「topic」、登録操作のことを「subscribe」と呼びます。「/programming/mruby」といった風に/(スラッシュ)で区切られた文字列がtopicで、ディレクトリ等と同様に階層構造で定義・指定できます。 送信側クライアントはMQTTブローカ
rbenv, nvm, MySQL, redisが入ったUbuntu Vagrantfile すぐに開発に使えるVagrantfile。依存物を少なくするためにShellでプロビジョニング。 vagrant up時に各種パッケージのインストールとRubyのコンパイルが走るので、30分ぐらいかかります。初回でOSイメージが無い場合はもっとかかるかも。 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.vm.network :forwarded_port, guest: 3000, host: 3000 config.vm.synced_folder ".", "/vagrant" GUEST_RUBY_VERSION = '2.2.4' GUEST_NVM_VERSION = '0.30.1
より快適なVim × Ruby環境を目指して構築したvim環境について。 0からでも構築できるように整理した。 やること 最初にRuby、Vim、その他必要なパッケージをガシガシインストールする。 その後、設定した下記機能について実際の操作例を見ていく。 自動コード補完ができるようにする(Rsense/neocomplete) Vim上で静的解析ができるようにする(Rubocop/syntastic) Vimからリファレンスを閲覧できるようにする(vim-ref/vim-ref-ri) メソッド定義元へのジャンプができるようにする(ctags/vim-tags) 構文終わりのキーワードを自動入力できるようにする(vim-endwise) OSはLinux(CentOS6.5)を想定。検証環境は以下のとおり。 $ uname -a Linux vagrant-centos65.vagrant
エンジニアの越川です。ActiveRecordを拡張するgemを作りたい。そんなときテストで使うダミーのモデルのテーブルをどう作るかに悩みますね。 本格的なRails拡張ではrails pluginコマンドを用いて開発することが多いと思います。その際は自動で作成されるspec/dummy配下のダミーアプリでmigrationを書くのが楽です。 一方そこまで大きくないActiveRecordの拡張ではもっと手軽に書きたいですね。 例として、protectedカラムがtrueのとき、destroyが出来ないようにするActiveRecordの拡張を考えてみましょう。(今回作成したgemは、github.com/ppworks/kienaideに置いてあります。) gemの作成手順 テストの書き方 <-本題はここです rubygemsにリリース と言った流れを見て行きましょう。 gemの作成手順
先月、heroku の推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ
Ruby 2.0 以降の変更を駆け足でふりかえります。 5分では足りませんでした。
Unicorn の graceful restart は無停止でのデプロイを可能にして非常に便利だが、fork を用いて実装されている都合で古いプロセスから新しいプロセスに環境変数が引き継がれるため、そのことに起因するトラブルがいくつかある。 dotenv の設定が書き変わらない 設定情報を dotenv で管理している人も多いと思うけど、環境変数を使っているので罠がある。 例えば最初に .env に MEMCACHE_SERVERS=memcache-server-001:11211 と書いてあったとする。 このとき Unicorn を起動すると、dotenv によって MEMCACHE_SERVERS=memcache-server-001:11211 が環境変数に追加される。 その後、接続先として memcache-server-002:11211 を追加したくなって .env を編
はじめに このコラムは、 2014年12月5日から始まった「Rails4技術者認定シルバー試験」の推奨教材となった「Ruby on Railsガイド」に沿って、Ruby初心者の筆者がリアルタイムで勉強をしていくコラムです。全12回を予定しています。勉強する上でつまずいた点やその回避法、他のプログラミング言語や職業経験に基づいたアドバイスなども紹介する予定です。RubyやRailsに興味のある方は、ぜひ一緒に勉強してみませんか。 今回参照するガイドはこちらです。 Active Recordの基礎 http://railsguides.jp/active_record_basics.html Active Recordマイグレーション http://railsguides.jp/active_record_migrations.html これらの章はRailsのモデルについての解説です。コード
Photo by Columbus Flickr Meet Group Photo | Flickr - Photo Sharing! Railsのよく忘れるプルダウン(select), チェックボックス(check_box), ラジオボタン(radio_button)などビューヘルパーをまとめました。 ビューでの表示形式の変換ヘルパーは、「Railsのテキスト、数値、日付/日時関連のフォーマットヘルパー - Rails Webook」を参照してください。 動作確認 Rails 4.2.0 目次 1. リンク - link_to 2. 画像 - image_tag 3. フォーム - form_for / form_tag 4. 関連モデルのフォームを作成 - fields_for 5. ラベル - label / label_tag 6. テキストフィールド - text_field /
2015/2/17にみんなのウェディングさんで開催された 『Ginza.rb 第20回 Rubyを使っているプロジェクトのコーディング規約を見てみよう』 に参加してきました。コーディング規約をじっくり議論できる場所はなかなかなかので、かなりおもしろかったです! 🏈 スタイルガイド今回Ginza.rbで一緒に読んだコーディング規約。 Rubyのコーディング規約ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide Railsのコーディング規約rails-style-guide/README-jaJA.md at master · satour/rails-style-guide 🐮 おもしろかった規約議論に聞き入りすぎて、あんまりメモしきれませんでしたが今日から使いたいコーディング規約の俺得メ
CapybaraとPhantomJS、Nokogiriを利用してのクローラー・スクレイピングの紹介です。 PhantomJSとは? PhantomJSは、ヘッドレスブラウザと呼ばれるWebKitのエミュレータです。ヘッドレスブラウザとは、GUIではなくCUIから利用できるブラウザでプログラムから呼ばれます。UIのテストツールとしてSeleniumのようなサービスがあります。Seleniumはブラウザを直接操作するので、環境依存や動作が重いといった幾つかの問題点があります。そこでよく利用されるのがPhantomJSです。Seleniumに比べて、軽量というメリットがあります。RubyからPhantomJSを扱うライブラリとして、Poltergeistがあります。 Capybaraとは? Capybaraは、WebシステムのUI層のテストをサポートするためのライブラリです。主にDSL機能とDr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く