タグ

railsに関するyk5656のブックマーク (335)

  • IT勉強会を探しやすくするWebアプリケーション『俺の勉カレ』をリニュアールしました

    2013-2014年の年末年始の連休を利用して開発したIT勉強会を網羅したアプリケーション『俺の勉カレ』を全面リニュアールしました! 見た目はちょこっとしか変わっていないように見えますが、実は裏側はほぼすべて作りなおしましたw 今回はリニュアールの目的と、リニュアールでどんな技術を使ったのかを中心に紹介していきます。 🎉 リニュアールの目的 初期構築したアプリケーションでは、Microservicesのまねことみたいなことを夢想していて単機能ごとに6個のアプリケーションで構成されていました。 しかもかなりの運用工数がかかるような謎設計で、昔の自分の頭のなかがいかにお花畑だったかを思い知らされます。 こういった失敗を踏まえて、 * できるだけ運用が楽な仕組みにする * 運用工数を最小化できるような構成にする * 自分が興味のある勉強会を見つけやすくする を基コンセプトに、裏側をほぼすべて

    IT勉強会を探しやすくするWebアプリケーション『俺の勉カレ』をリニュアールしました
    yk5656
    yk5656 2014/11/04
  • http://blog.inouetakuya.info/entry/2014/11/03/191059

    http://blog.inouetakuya.info/entry/2014/11/03/191059
    yk5656
    yk5656 2014/11/03
  • ActiveRecordの様々なメソッドたち - Qiita

    ActieRecordには様々なメソッドがあります。中にはあまり使わないものもあると思います。以下に個人的な覚え書きの意味もこめて、幾つかのメソッドの使い方や発行されるSQLを載せます。 uniq SQLのdistinctに相当します。 pry(main)> User.where(name: 'test').uniq User Load (0.1ms) SELECT DISTINCT "users".* FROM "users" WHERE "users"."name" = 'test'

    ActiveRecordの様々なメソッドたち - Qiita
    yk5656
    yk5656 2014/11/01
  • Rails4でエンタープライズなActiveRecordモデルを作るための6のステップ

    Rails / RSpec / Ruby 1. 階層を分けてモデルを作る まずはrails gコマンドでモデルを作ります。たいていの場合はお互いに関連のある複数のモデルを作ることになりますが、それらモデルは同じ階層の下に置くようにします。 例えば $ rails g model Blog::User name:string profile:text $ rails g model Blog::Post user:references permalink:string title:string content:text というようにモデルを作成します。 2. データベース制約を追加する Railsが生成するmigrationにはデータベース制約が設定されていないので、そのままではエンタープライズ用途には使えません。 基的にNOT NULL制約とUNIQUE制約は必ず設定しますし、外部キーが

    Rails4でエンタープライズなActiveRecordモデルを作るための6のステップ
    yk5656
    yk5656 2014/10/28
  • railsで初期データを入れる(seed-fuの使い方) - Qiita

    seed-fu を使うのが、初期データの入れ方としては良いみたいです。 railsにある仕組みとして rake db:seed があります。 これは、何も考えずに使うと実行するたびに同じデータが登録されてしまいます。 そこで、代わりにseed-fuを利用するわけです。 seed-fuは、すでに存在しているが変更したいレコードだけ更新したり、ファイル単位で実行できたり、簡単に書けるようなシンタックスシュガーがあったりと便利です。 インストール Gemfileに記述してインストールします。 (Rails 3.1, 3.2, 4.0, 4.1の場合は2.3を使う)

    railsで初期データを入れる(seed-fuの使い方) - Qiita
    yk5656
    yk5656 2014/10/14
  • Rails4 + Fluentd + MySQL でランキング機能作ってみた - 筋肉とエンジニアリングで すべてを解決するブログ

    アクセスランキングを作ってみよう! 今、Rails4 を使ってアクセスログからランキング作ってみたいなぁーと思ってたんですが、みんなどうやってんだろうって聞いてみたところ、 Fluentd ってのを組み込むだけで簡単に集計とかできるよーって話だったので、使ってみました。 Fluentd とは まず読み方は、 「ふるーえんとでぃー」であって、「ふるーえんど」とかじゃないっぽいです。d はたぶんデーモンの d 。 色々説明面倒なんで省略しますが、ログ収集元とか出力先が簡単に設定できて、自分の欲しい形でログ保持できますよーって感じっぽい。なので、 「シェルスクリプトで処理した tail の処理結果をファイルに」「nginx から出力されたアクセスログを mongoDB に」とかそういう処理を自前で書く必要なく、簡単な設定だけでいけちゃう。 詳しくは → 柔軟なログ収集を可能にする「fluentd

    Rails4 + Fluentd + MySQL でランキング機能作ってみた - 筋肉とエンジニアリングで すべてを解決するブログ
  • Railsでよく使う便利なGemまとめ - 惰眠と論理と指揮棒と

    2014-10-09 Railsでよく使う便利なGemまとめ Ruby Ruby On Rails Railsでよく使う便利なGem 一つ一つは細かく説明しませんが、よく使ってる便利系Gemをつらつらと awesome_print consoleの出力を綺麗にしてくれる デバック時にいい感じ! awesome_print無し awesome_print有り paranoia 論理削除の手助けをしてくれる uniqバリデーションで、論理削除されたものを対象に含めたくないならこれも入れとくといい paranoia_uniqueness_validator rails_config 定数を管理するGem 環境ごとに読み込む定数を変更できるので便利 使い方とかはこちらにまとまってます Ruby - Railsで定数を環境ごとに管理するrails_config - Qiita Ruby - R

    Railsでよく使う便利なGemまとめ - 惰眠と論理と指揮棒と
    yk5656
    yk5656 2014/10/10
  • Rails 4.2で導入されたActive Jobを使ってみよう - Qiita

    Active Jobとは? Ruby on Rails(以下Rails) 4.2からバックグラウンドでジョブを実行するActive Jobが利用できるようになりました。 Active Jobを利用することによって、メールの送信や、バッチ処理などをバックグラウンドで実行することが可能になります。 Railsで利用できるバックグラウンドでのジョブ実行の仕組みとしては、Delayed Job, Resque, Sidekiqなどがありますが、Active Jobはこれらのアダプタとなって動作します。 Active Jobは、ジョブスケジューリングを抽象化するAPIを備えており、異なるジョブ実行の仕組みに移行(たとえばDelayed JobからResqueへ移行)しても、コードをほとんど変えることなく実行することができます。 Active Jobを使うための準備 Resqueのセットアップ 今回は

    Rails 4.2で導入されたActive Jobを使ってみよう - Qiita
    yk5656
    yk5656 2014/10/10
  • Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社

    Railsで大きなファイルを扱う際のポイントをまとめてみました。 前提 大きなファイルとは だいたい100MB~10GBくらいのファイルをダウンロード・アップロードするのを想定することにします。 数MB程度だと、特別な工夫なしでもそれほど問題になりません。10GBを超えてくると、気をつけるべき点が変わってくるかと思います。 以下では主にサンプルとして、1GBのファイル(ISOファイルやZIPファイルなど)を想定します。 環境 以下のような環境を想定します。 Railsは4系 Nginx + Unicornのスタンダードな構成 サーバ1台のシンプルな構成(ロードバランサを使用した複数台構成については、末尾に少し記載しています) ダウンロード ファイルのダウンロード まずは、Railsアプリから大きなファイルを配信するケースを考えましょう。 たとえば、ISOファイルをサーバ内に保存しておいて、

    Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社
    yk5656
    yk5656 2014/10/08
  • Rails Style Guideに載っていることが分かれば大体Rails書ける気がする | mah365

    Rails Style Guideに載っていることが分かれば大体Rails書ける気がしました。もちろん実際に書けるというのと、知識として知るのは全く別のことだと思うのですが、知識としては要点がかなりおさえられている気がしました。 Rails Style Guideで言っていることが分かれば大体分かってる もちろんRails Style Guideは個々の単語(ActiveRecordとかMigrationとか)が分かっている前提で書いてあるので、その分のハードルは高いのですが、逆にここで書いてあることが理解できれば大体Railsのコードが書けるし読めるという到達点が示されている、と捉えることもできます。 昔流行った遅延学習法の話に遡るわけでもないのですが、1から積み上げで勉強していくのも退屈だし、0の段階からいきなりコードを書くのも若干ハードです。何より、知識としてどこまで学べば良いのか分

    Rails Style Guideに載っていることが分かれば大体Rails書ける気がする | mah365
    yk5656
    yk5656 2014/10/04
  • Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ

    技術部の鈴木 (@eagletmt) です。 クックパッドでは8月に体アプリケーションや API サーバ等で使われている Rails のバージョンを 3.2 から 4.1 へ順次アップグレードを行いました。 アップグレードは主に松田さん (@amatsuda) と私で進めました。 この記事ではアップレードの際に遭遇した問題の一部を紹介します。 MySQL strict mode の有効化 MySQL を使っている場合、Rails 4.0 からデフォルトで @@SESSION.sql_mode = 'STRICT_ALL_TABLES' が最初に実行されるようになりました (Ruby on Rails 4.0 Release Notes) 。 これを無効化するために database.yml で strict: false という設定が用意されています。 しかし、同じく Rails 4.0

    Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ
    yk5656
    yk5656 2014/09/30
  • 『パーフェクト Ruby on Rails』を読んだ - きにきじ

    『パーフェクト Ruby on Rails』(すがわらまさのり, 前島真一, 近藤宇智朗, 橋立友宏)を読みました。「Rails 開発に慣れてきたかな」くらいの人にちょうどいい内容だったと思います。それくらいレベルの人が少し上を目指したり、より Rails らしい設計や開発の仕方を学んだりするのにいい書籍だと思いました。Ruby 2 や Rails 4 向けの説明になっているので、新しめの情報を得たいような場合にもお薦めです。逆に、最新の RubyRails でバリバリ開発しているような人には既知のことばかりで物足りないんじゃないかなという印象です。 全体的に興味はあったのですが、購入の決め手となったのは第9章「より実践的なモデルの使い方」です。どう設計するか、どうリファクタリングするかの1つの指針として読んでみたいと思いました。実際に読んだ感想としては、学びも多く、読んでよかったと

    yk5656
    yk5656 2014/09/30
  • Throw away Sprockets!!

    SprocketsをNode.jsのエコシステムで置き換えてRailsと組み合わせる話

    Throw away Sprockets!!
    yk5656
    yk5656 2014/09/21
  • Ruby on Rails ガイド:体系的に Rails を学ぼう

    Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、プロダクト開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 モデル Active Record の基礎 Active Recordの基礎となるモデル、データベースへの永続的な保存、Active

    Ruby on Rails ガイド:体系的に Rails を学ぼう
    yk5656
    yk5656 2014/09/18
  • RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog

    先日、Rails で開発しているときに意図しない InvalidAuthenticityToken エラーが発生して、すごくハマってしまいました。そのときに Rails のCSRF対策の仕組みについて調べてみましたので、ブログに残しておきます。 Rails のCSRF対策 Rails が生成した ApplicationController には以下の記述があります。 class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end protect_from_forg

    RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog
    yk5656
    yk5656 2014/09/06
  • ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita

    ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id

    ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita
    yk5656
    yk5656 2014/09/05
  • Resource Routingつらくね? - Qiita

    Rails Guidesでは「Resource Routing: the Rails Default」として namespace, resource, resources といったメソッドを利用する方法が紹介されている。これまでとりあえずこの機能を使って開発してきたが、これは果たして当に積極的に利用した方が良い機能なのか。 あるとき 試しにTwitterAPIのようなルーティングを定義しながら、Resource Routingを利用する場合としない場合とを比較してみることにする。ここでは (Resource Routingを利用するメリットを出すためにも)、API用のPrefixとして各パスの先頭に /api/v1 を付けることにする。このAPIはアクセストークンの発行や、tweetの取得、投稿、ユーザやフォロワー情報の取得などの機能を提供する。また、/api/v1 以下のどのパターン

    Resource Routingつらくね? - Qiita
    yk5656
    yk5656 2014/09/02
  • クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ

    インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC

    クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ
    yk5656
    yk5656 2014/08/29
  • Railsをバージョンアップし続けるために必要なこと - Qiita

    当は、RubyWorld Conf辺りでこういう内容も交えてなんか話せればいいなあと思ってたんだけど、CFPに落ちたのでQiitaにポエムを書いてみました。 Railsはそれなりに学習コストはかかりますが、慣れてくるとデフォルトで便利なものが揃ってるしサードパーティライブラリも豊富で、未だに最も便利なWebアプリケーションフレームワークの一つだと思います。 なので、最近のスタートアップ界隈ではRailsで開発をスタートする、という話をよく耳にします。(個人の感想です) しかし、Rails体に新しい要素をガンガン取り入れてくるので、バージョンアップのサイクルはかなり早く、それに追従していくのはそれなりに大変です。 Railsで開発をする場合には、一旦レールに乗ったらプロダクトが死ぬまで走り続ける覚悟が必要です。(時速60km以下になったら爆発する) それを最初に理解しておかないと、あっ

    Railsをバージョンアップし続けるために必要なこと - Qiita
    yk5656
    yk5656 2014/08/28
  • Rails アプリケーション開発で役に立ったJavaScript デバッグの小技|TechRacho by BPS株式会社

    Chrome devtools でイベント監視 いろいろなJavaScriptプラグインを使っていると イベントの伝播を止めてしまうような動作をするものを使ってしまうことがあります。 function を割り当てたいイベントが止められていると厄介です。 代用できるイベントが生き残っていればそちらを使ってしまいたいです。 そんな時、どんなイベントが発生しているのかは Chrome devtools のmonitorEvents で確認することができます。 https://developer.chrome.com/devtools/docs/commandline-api#monitoreventsobject-events 第一引数で監視対象、第二引数でイベントを指定します。 monitorEvents(window, "resize"); イベントの指定はイベント名だけでなく、"mouse

    Rails アプリケーション開発で役に立ったJavaScript デバッグの小技|TechRacho by BPS株式会社
    yk5656
    yk5656 2014/08/26