当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。

当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。
最近Railsで掲示板つくってて、サボって後回しにしていたJavaScriptの最適化をやりました。 掲示板の構成 Webpackを使っている Reactを使っている Server-Side Renderingをやっている Railsを使っている Sprocketsを使っていない 作業内容 webpack-bundle-size-analyzerで容量の大きいpackageを調査 HTTPクライアントに利用していたjQueryを撤廃 HTTPクライアントにaxiosを採用 lodashを一部しか読み込まないように変更 moment.jsの不要なlocaleを読み込まないように設定 変更結果 これでminify後の容量が770KB→476KBに。gzip圧縮状態では202KB→125KB。 $(npm bin)/webpack --profile --json | webpack-bundl
Ruby on Railsの開発者DHH(David Heinemeier Hansson)氏は、Rails 5.0の正式版がリリースされたことを発表しました。あわせてドキュメントの「Ruby on Rails Guides」もバージョン5.0対応にアップデートされました。 Rails 5.0では、RailsからWebSocketsを直接扱えるフレームワークの「Action Cable」、バックエンドとJSONで通信するようなアプリケーションを構築するためにAPIで通信可能になる「API mode」などを備えているのが特長です。 Action Cableを用いることで、HTTPをポーリングするといった実装に依存することなくWebScocketを用いてクライアントとサーバ間で効率的な通信が可能となり、API modeではJavaScriptやネイティブなモバイルアプリケーションとバックエンド
投稿推進部の外村(@hokaccha)です。 クックパッドブログの開発でRails上にECMAScript6などのモダンなJavaScript開発環境を導入した経験を元にノウハウを紹介したいと思います。 RailsはSprocketsというgemでJavaScriptやCSSをコンパイルする仕組みが提供されています。Sprocketsによるasset管理の仕組みは非常によくできており、AltJSのトランスパイルやファイルの結合、minifyなど、assetのコンパイルに必要な機能を一通り備えています。 しかし、JavaScriptにおけるモジュールの依存関係の解決や、ライブラリの管理などについてはモダンなJavaScript開発と乖離してきているのが現状です。そこで、Railsでも以下のようなことを実現できることを目標に環境を作りました。 ECMAScript6のシンタックスを使う モジュ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Railsアプリケーションを本格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性
このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects
よくあるお問い合わせフォームみたいので、ユーザーの入力を一度確認画面みたいな感じで表示してから送信したい時・・ ユーザーが問い合わせの入力 「確認」ボタンをクリック 入力した項目を一度確認画面に表示(入力とほとんど一緒) 「送信」ボタンをクリック 実際にモデルとして保存 という流れをRailsで実装する時の定石 Model Question validates :title, presence: true validates :name, presence: true validates :content, presence: true validates_acceptance_of :confirming after_validation :check_confirming def check_confirming errors.delete(:confirming) self.conf
Railsでユーザのフォローやブロック、ミュート、あるいは記事へのいいね機能などを簡単に実装できるacts_in_relationというGemを公開しました。 インストール方法 Gemfileに以下を書いてbundleするだけで使えます。 gem 'acts_in_relation' 使い方 acts_in_relationは、(1)UserとUserといった同一モデルへの関係、(2)UserとPostといった異なるモデル間の関係、の2つの実装をサポートしています。 ここではそれぞれについて説明します。 (1) ユーザへのフォロー機能の実装 たとえばユーザ同士にフォロー機能を実装するとします。 まず、User、Follow各モデルを生成します。 $ rails g model User name:string $ rails g model Follow user_id:integer t
この記事は rails newの後に毎回お決まりのgemを入れたり初期設定をするのが面倒だなと思っている方が対象です 記事を読み終えると、自分でテンプレートを作ってお決まりの手順を自動化することができるようになります とりあえずあとで読もう、という方はこちら => はじめに こんにちわ!クライアントワークチームの@hilotterです。 普段は主にRailsを使ったキャンペーンサイトの開発を行っています。 早速ですがみなさん rails new してますか? Railsでアプリケーション開発を行う際にまず実行するのが rails new ですね。 ただ、rails newの後、すぐにアプリケーションコードの実装開始かというとそうではなくて、「テストのためにrspecを入れよう」とか、「unicornの設定をしよう」というように、開発を便利にしてくれる様々なgemをインストールしたり、gem
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているた
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 誰も読んでいないブログからの転載 最近MVCがどうとかという内容が話題になっていますが、ちょっと乗っかった内容です。 Railsで初心者によく見られる良くないコードは、コントローラーでたくさんの処理を実装してコントローラーの一つのアクションが30行、40行になってしまうことです。それに対して、モデルに適切に処理を移すのが良いんだということを言うんですが、”適切に”って何?じゃー、コントローラーには何を書くのがいいの?っていう質問への僕なりの回答です。 良いメソッドとは? 直接回答する前に、まずは前提の共有から、プログラムにおいて良いメソ
タイトル長い。すまぬ。PHPerとして約10年近く。Ruby自体は案件によってちょこっとだけ触ったことがある程度。Rails自体を本格的にさわるのは今回が初めて。PHPだとCakePHPを中心にZend/Symfonyなどいくつか。そんな僕が今回、Rails4デビューをして、WebAPIを作り、RSpecでテスト駆動開発風味で、GitHubプルリクベースの、CircleCI経由デプロイをするまでの開発の流れをひと通りやってみて、分かったことがいくつかあったので、それをまとめてみた。過去の自分のために。 注意点としては、今回作ったのはWebサービスではなく、スマホゲーム(ネイティブ)のサーバサイドWebAPIという点。なので、いわゆるViewに関わる部分はあんまり出てこないです。すまぬ。 それと、ひと通りの流れをチュートリアル的に解説するような記事ではなく、躓いたポイントだったり、当時分かり
技術部の小野(@taiki45)です。この記事では簡単なアプリケーション(ブログシステム)の実装を通して、クックパッドで作成・使用しているライブラリのGarage の紹介と Garage を使った RESTful Web API の開発をご紹介したいと思います。 Garage は RESTful Web API を開発するための、 Rails gemified plugins です。Rails プログラマは Garage を使って Rails を拡張することで素早く Web API を開発することができます。Garage は新しくアプリケーションを開発する場合にも、既存の Rails アプリケーションに組み込んで Web API を実装する場合でも使用できます。Garage はリソースのシリアライズやアクセスコントロールなど Web API の実装に必要な機能をカバーしています。 Ruby
DBのスキーマ、皆様どのように管理されているでしょうか。 Railsを利用されている方の多くは、ActiveRecordのマイグレーションを利用して管理をされているかと思います。 私もいままでいくつかのRailsプロジェクトに関わってきましたが、 ほぼ全てのプロジェクトでActiveRecordのDBマイグレーションを利用してきました。 (一部のプロジェクトはActiveRecordを使っていないため、マイグレーションも独自のものを利用しています) ActiveRecordのマイグレーションでは、DBスキーマ変更の差分情報をマイグレーションスクリプトとして保存しておきます。例えば、新しいテーブル「users」を作成する場合は、下記のようなマイグレーションスクリプトを作成します。 class AddUsers < ActiveRecord::Migration def up # ここにマイグ
はじめに 2014年8月11日の晩に放送されたソニックガーデンのweb勉強会、SonicGardn Studyでは「いつまでクソコードを書き続けるの? 〜出来るプログラマだけが知っているコードレビュー7つの秘訣〜」というタイトルで、弊社ソニックガーデンの西見さん(@mah_lab)が講演してくれました。 デキるプログラマだけが知っているコードレビュー7つの秘訣 from Masahiro Nishimi いつまでクソコードを書き続けるの? 〜出来るプログラマだけが知っているコードレビュー7つの秘訣〜 - YouTube この放送の中でも触れられていたように、ソニックガーデンではコードレビューを大事にしています。 ただ、勉強会のスライドの中では具体的なコード例や指摘の例がほとんど出てこなかったので、「実際どんな感じなの?」という疑問を持った方もいたんじゃないかと思います。 そこで今回は「入社
先日あるベンチャーのエンジニアの方から教えていただいたサービスが『mailtrap.io』です。 このサービスはSMTPのように動作するが、実際にはメールを送付せずにWeb上で確認ができるサービスです。Railsでの設定は通常のSMTPメールとほぼ同じです。 また最初は間違いやすい設定に関しても、Web画面上で自動生成してくれるという親切っぷりです。 🏀 使い方使い方はいたってシンプル。まずはユーザー登録して、Inboxを作成します。作成すると、SMTPの設定がかかれています。RailsやDjango、CakePHPなどの設定も一瞬で取り出せます。 あとはその設定をRails側に書き込みます。config/initializers/mailtrap.rbなどに次のように書きます。 if Rails.env.development? config.action_mailer.deliver
TODO管理をするとして「すべてのタスクを削除したい」とか「すべてのタスクを終了にしたい」っていう要件、普通によくありますね。 これって簡単なくせに「どうあるべきなの?」と迷うことが多くて悩んでいたところ、@tkawaさんがサクッと解決してくれたのでここに残しておきます。 考え方と使われ方 すべてのリソースに対するアクションなのでDELETE /tasksとかPUT /tasksで済ませたいというREST脳が働きますね。 どうやって使いたいか、というと、こんな感じ。 app/views/tasks/index.html.erb 普段はHamlですけど、今回はERBで(手抜き) <h1>Listing Tasks</h1> <table> <thead> <tr> <th>Name</th> <th>Memo</th> <th>Done</th> <th colspan="3"></th>
◯ 事象 ruby on rails のチュートリにて rails のサーバーを起動して、いざブラウザからアクセス!! 「Google Chrome では localhost:3000 に接続できませんでした」 /(^o^)\ ◯ 現状確認 3000でプロセスが待ってるのは確認できた。ふむ [vagrant@localhost ~]$ netstat -anp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreig
最近個人的に作った写真共有サイトを公開しました。 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
DHHの"TDD is dead. Long live testing."を、訳してみました。 翻訳 やっとむ By David Heinemeier Hansson on April 23, 2014 著 David Heinemeier Hansson 2014年4月23日 Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming. テストファースト原理主義は禁欲のみを唱えた性教育のようなものだ。つまり、自己嫌悪に陥っている人に向けた、非現実的で効果のない、道徳教育のようなものだ。 It didn't start out like that. When I first disco
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く