以下の記事のAPIのみの設定の部分を参考にさせていただきました。 RailsでAPI作成とAPIのテストのまとめ - Rails Webook ここでは、Uberみたいにドライバーを登録していくサービスのAPIを想定。Driverクラスってのを作ってます。 routes.rbに設定 config/routes.rbに以下のように記述します。 Rails.application.routes.draw do namespace :api, { format: 'json' } do resources :drivers end resources :drivers root to: 'drivers#index' end まず以下でDriverクラスに関するnamespaceを、formatをjsonに指定して作成します。 namespace :api, { format: 'json' }
本記事はRubyについて書かれたものではありますが、Python、JavaScript、Javaなど、全ての言語コミュニティに当てはまる事実を述べたものです。依存関係が引き起こす負の連鎖は誰のためにもなりません。 上の図は、私がこれまでに使用した全てのRailsアプリの依存関係を可視化したものです。以下の例はいずれも、どこかで聞いたことのあるものではないでしょうか。 何百ものエントリを含むGemfile 本番環境で読み込まれるテスト用Gem 数百メガバイトもRAMを食うRailsのプロセス Rubygemsシステムは、それを再利用する誰もが容易にRubyのパッケージを作ることができるという点で、賞賛に値するものです。しかし、その便利さが意味するところは、そうしたGemと他のGemを非常に安易に結び付け、さらにそれが、「インターネットでダウンロード」され、数百もの依存関係を持つRailsアプ
検証環境(VM)でアプリを実行したところ、js、css、イメージファイルなどの静的ファイルが読み込まれず、404 Not Foundになってしまいました。 これの原因は、config/environments/production.rb内の設定で、config.serve_static_assetsの値がプロダクション環境ではデフォルトでfalseになっているためでした。 # Disable Rails's static asset server # In production, Apache or nginx will already do this config.serve_static_assets = false Rails guideによると、この値は静的ファイルをRails自身がサーブするか、NginxやApacheなどのアプリケーションがサーブするかでtrueとfalseを切
1.0.0 1.1.0 1.1.1 1.1.6 1.2.0 1.2.6 2.0.0 2.0.1 2.0.3 2.1.0 2.2.1 2.3.2 2.3.8 3.0.0 3.0.5 3.0.7 3.0.9 3.1.0 3.2.3 3.2.8 3.2.13 4.0.0 4.1.0 4.2.1
もっとgrapeを使いこなしたくて。とりあえず、勉強してみましたシリーズの小粒記事です。 簡単なセットアップ手順 途中まで書いたんですが、Ruby – grapeメモ – Qiita が本当にわかりやすいです。とりあえず、これをベースに気になったことを書いていきます。 パラメータのバリデーションと強制 params do requires :id, type: Integer optional :text, type: String, regexp: /^[a-z]+$/ group :media do requires :url end optional :audio do requires :format, type: Symbol, values: [:mp3, :wav, :aac, :ogg], default: :mp3 end mutually_exclusive :medi
先日、わこつAdvebtCalendar2014ことわこつ日記をリリースしました。 デザイン面で時間はかかったものの、コーディングの時間はほとんどかかっていません。が、開発する過程でベストプラクティスっぽいgemはどれだろうというのを調べ、今まで曖昧だった部分についてはっきりとさせました。 最低限これだけあれば最低限まともそうなwebアプリになるだろうというgemをリストアップして今年の学びの締めくくりとしたいと思います。 ユーザ管理関連 devise (ユーザ管理) ユーザ登録の際のメアド管理やらパスワード管理やらまでしてくれます。パスワードも開発者が気にせずとも一方向性関数で安全に扱ってくれています。 後述のomniauthを使うことでのTwitterログインも継承クラスを少し書くだけで実装できるのでとても便利。 セッション管理も行ってくれ、簡単にログインユーザの情報を取り出せるメソッ
Ruby on Rails 4を使ってRESTfulなAPIサーバを作ってみます。RoRを触るのは数年ぶりなのでググりながらやってみた結果のメモとなります。 そもそも新しいrubyが入っていなかったので入れます。rvmというのが便利らしい。nodeでいうnvmやnodebrewですね。 uname -a Linux mnu13 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux curl -sSL https://get.rvm.io | bash -s stable source ~/.bash_profile rvm install 2.1 rvm use 2.1 ruby -v ruby 2.1.2p95 (2014-05-08 revision 458
はじめまして。今年中途入社しました関と申します。 UFCと映画が好きです。 ということで、おすすめの映画はWarriorです。 すみません、本題です。 入社以来、主に外部APIを使ったシステムを構築しています。 普段はAPIを使わせて頂いている側なのですが、今回試しに自分でもそれっぽいものを作ってみました。 (正確にはそういう環境を用意しただけでアプリ側のコードはほぼ書いてません。) はじめに 以下のような流れになっております。 VMに実行環境作成 ↓ railsアプリの作成 ↓ curlで叩いてみる ではさっそくまいりましょう。 実行環境構築 Chefを使ってCentOS6.5の環境を作ります。 ※Chefの使い方を示しているわけではありません。結構適当です。 chef関連インストール gem install chef knife configure gem install knife-
追記 RailsでJS辛い問題に関しての結論:http://qiita.com/kaiinui@github/items/dad6180f1910c6a4bfd5 -- 近年、(1) Web/App両対応が増えてきたこと、(2) WebでもJSを多用するようになったこと、の二つがあり、以下の点でRailsが微妙になっている。 ViewのJavascriptがRailsから独立している API層のサポートが微妙 最初に書いておきますが、特に決定的な解決策もなく、辛いから今後解消されてほしいよね、な話です。 ViewのJavascriptがRailsから独立している Railsはとても堅牢。 モデル、コントローラ、ルーティングと、変にいじらない限りはほとんどテストが要らない。 必要なのは、モデルに新たにpublicメソッドを付けたときくらいだろう。 実際、バックエンドはそうそうバグが出ない。
普段仕事でRails を使っている身ですが、Rails 2.x 系を使っているものが1つもない。結構前からRails 3 の話題がでてきている今、そろそろRails 2.x をまともに使っておきたいと思ったので、まずはREST について調べました。最初にREST について調べたのは、REST がRails 2.x (実際には1.2.x から)で導入された最も大きな概念だからです。 REST とは REST とはアーキテクチャスタイルである アーキテクチャスタイルとはデザインパターンのようなもので、システムを設計する上での方針をまとめたものである。 REST は「REpresentational State Transfer」の略である 直訳すると、「(リソースの)表現可能な状態の転送」。あるリソースの状態を表現したものがサーバからクライアントに転送されるのがREST。ここにでてきた「リソー
TOP Tips Railsで何をやっても Routing Error uninitialized constant ~と言われて泣きそうになった時 昨日まで、午前中まで、ちょっとさっきまで、正常に動いていた Ruby On Rails のアプリが、急に何をやっても「Routing Error : Uninitialized constant XXXXX Controller」というエラーになってしまい、うんともすんとも言わなくなってしまうという謎の症状に陥り、原因究明まで1ヶ月ほど泣きそうになっていたというしびれる経験をしたので、ここに解決までのTIPS(もとい、奮闘記?)を書いておこうかと。 犯人捜索編 まずはもうトラウマに近くなったこのRailsのエラー画面…。 まず、このエラーに陥ると、Railsくんは直接URLを指定して呼び出されるコントローラーを切り替えても、いやもうそれ以外何
ある仕事でスマフォ用のAPIサーバーを作る事になり、REST-like APIが簡単に作れるフレームワーク grape を調査してみました。grapeの良さは、DSLで簡単にAPIサーバーが書ける点とRackで動く軽いフレームワークなのでRuby on Railsに比べ高いパフォーマンスが期待できる点です。 システム構成 Grapeは Mounting に書かれているようにいくつかの構成で動かせます Rack: Rack上で動かす ActiveRecord without Rails: Rackの上で動かすけど ActiveRecord を使う Rails: Ruby on Railsの中で動かす ... 今回のシステムでは管理者用のWebアプリは Ruby on Railsで作るので、モデルを共有できるRuby on Railsに組み込み使うのが魅力的です。 評価用コードを作ってみた 準
API 作成用のフレームワークである Grape で mass assignment 対策するにはいくつかありますが、そのうちで Rails 4 の strong_parameters を使用する方法、Grape 自身の declared を使用する方法を紹介します。 対象 Grape 0.3.0 Rails 3.2.12 strong_parameters 0.2.0 Rails 4 の strong_parameters を使用する方法 strong_parameters は Rails 4 で mass assignment 対策のためにデフォルトで追加される RubyGem です。使用方法については以下のサイトが参考になるでしょう。 Rails4.0に含まれる strong_parameters について - willnet.in Grape でも params があるので、Rai
Rails4 から Rails のコアに取り込まれた Strong Parameters は、それまでの Model 側で mass assignments 対策を attr_accessible / attr_protected を使って行なっていたことに比べると、Controller 側で制御することは利用する側から言えば、とてもわかりやすくなったと思う。 Strong Parameters の詳細は edgeguides.rubyonrails.org の Strong Parameters の箇所を見るといいと思います。 $ rails g scaffold post title content:text published:booleanRails 4.0.0.rc1 で scaffold してみると class PostsController < ApplicationCont
某インターンのメンターをしながら, メンターたちと空いてる時間を使ってネイティブアプリを書いていた. その時バックエンドをRailsで書いて思ったことを夏休みの感想文としてまとめてみた. ライブラリの選定 Grape RailsでAPIといえば, Grapeというライブラリが有名だけど, 特にRailsのデフォルトのコントローラで困ることが少なかったのと, Railsとの記法の違いっぽいところがあって, 導入しなかった. ただいま考えてみれば, パラメータのバリデーションや, (どう管理するのかしらんけど)Cookieをサポートしていたり, エラーハンドリングもいい感じだし, 導入してみたら楽だったかもしれない. 各アクションにdescを書いておけば, ドキュメントの自動生成とかできたりするし. 実はとても便利かもしれない.(反省終わり) Rabl GrapeのかわりにRablというJSO
前回に続き、Webエンジニア向けのパズルを作った。プログラム言語を問わず、フロントエンド、バックエンド、iOS、Android、どんな技術を担当しているエンジニアであっても誰でも解けるパズルだ。 サイトにアクセスするとHack Me If You Can(ハックできるもんならやってみろ)のタイトルとCall my APIsとあるのみ。分かる人なら数分以内に解けるだろう。 http://challenge-your-limits2.herokuapp.com/ パズルが解けたらコメントを入れられる仕組みにしている。パズルを解いたDarth Vader氏よりイキなコメントが入っている。このDarth Vaderは私の職場の同僚アメリカ人エンジニアのAだ。 Aとは前回のパズルを解いてもらった時は「あーそうか」程度で終わったのだが、今回のパズルに関しては長い議論になった。Aが異を唱えたのはパズルの
DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 Rails のエラーページにはありがたいことにスタックトレースが表示されていますが、どうせならそこに書かれたファイル名をクリックするだけでエディタが開くようにしてしまおうという作戦です。 手順は以下の3ステップです 。 スタックトレース中のパスをうさんくさい URL にリンクさせる うさんくさい URL を使ってエディタを起動できるようにする うさんくさい URL のプロトコルを扱えるよう Windows に教えてやる スタックトレース中のパスをうさんくさい URL にリンクさせる Greasemonkey を使って app/ で始まっている文字列をファイルパスとみなし、リンクを作ります。 editor という勝手に決めたプロトコルを使って、editor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く