タグ

railsに関するmoznionのブックマーク (4)

  • Rails のモデルはどうあるべきか - tomykaira makes love with codes

    2013-07-05 Rails のモデルはどうあるべきか rails TL;DR: Rails の model が太りやすいのは、生まれつき責務過剰だから。開発者が設計段階で責務を絞り、べる量を減らしてあげよう。 Rails の model というのは、概念も実装も、とても奇妙な使われ方をしている。 いささか不気味だし、実害もある。 fat model はずっと Rails 界で話題になりつづけている。 すでに Rails のプロフェッショナルは抜け出せているのかもしれないが、まだ議論の余地のある話題ではあるようだ。 なぜ model が太るかというと、なんでもかんでも model にべさせるからである。 一日中べてれば元々どんなにスレンダーでも太るに決まってる。 コードのダイエットべる量を減らすか、外に出すしかない。 太ってから外に出すのがリファクタリングである。 後知恵的に

  • RailsでOAuthを使うには~OmniAuth | | Scimpr Blog

    OmniAuthの受け持つ役割OmniAuthはOAuthという仕組みを使って外部のプロバイダ(TwitterとかFacebook)で認証を受け持ってくれる Railsのアプリではプロバイダ先のパスワードとかを知らなくて、認証できたかどうかの結果を受け取る(もちろん、そのほかのそのサイトの情報もいろいろ受け取る) やり方としては、ユーザーに/auth/:providerというリンクを踏んでもらい、認証結果は、/auth/:provider/callbackで受け取る その後はRailsのアプリが受け持つ役割で、通常は/auth/:provider/callbackを”session#create”に渡してsessionをつくる で、必要に応じてユーザー情報なんかを永続化したりする session[]に入れられた情報は、current_userというメソッドをつくってログインしているか確認し

    RailsでOAuthを使うには~OmniAuth | | Scimpr Blog
  • 関連モデルの命名 - 鳩舎

    今日は Rails での『関連モデル』の名前について考える。 構造としてはこんな感じ。 ・ルーム(Room)に所属するユーザー(User) ・ルーム(Room)での管理者権限を持つユーザー(User) どちらの関連も N:N の関連。いわゆる has_may な感じ。 で、こういう時の命名って Room モデルと User モデルだから RoomUser とか UserRoom とかっていうモデルやテーブルを作りがちなのだけれど、今回は同様の形態の関連が2つあるのでちょっと微妙な事になりそう。 っていうか、まずもって RoomUser モデルってなんだよ。なんのモデルだよそれ。って感じなので名前を考える。 ルーム(Room)に所属するユーザー(User) 関連モデルのデータは大抵2つのフィールドを持っている。 Migration あたりから抜き出すと t.references :room

    関連モデルの命名 - 鳩舎
  • Rails – Deviseのコントローラをカスタマイズする方法 | 株式会社田村倉庫

    Railsの認証エンジン「Devise」のコントローラをカスタマイズする方法を紹介します。 コントローラファイルの作成 Deviseをインストールしてもそのコントローラは生成されません。Deviseが内部的に持っているコントローラが使用されます。そのため、Deviseのコントローラの挙動を変えたい場合は、そのDeviseのコントローラクラスを継承した独自のコントローラを作成する必要があります。 認証用のモデルを「User」という名前にした場合、app/controllers/usersディレクトリ配下にsessions_controller.rbとregistrations_controller.rbという2つのコントローラファイルを作成します。前者はユーザのログイン/ログアウト機能のコントローラで、後者はユーザ登録機能のコントローラになります。それぞれソースコードは以下のようにします。

    Rails – Deviseのコントローラをカスタマイズする方法 | 株式会社田村倉庫
  • 1