タグ

ブックマーク / www.tamurasouko.com (2)

  • Rails – テーブルなしのモデルを利用する方法 | 株式会社田村倉庫

    RailsではモデルとDBのテーブルが1対1の関係になっていることが多いですが、対応するテーブルはないけどモデルを利用したい、というシーンがあると思います。 特に画面の入力内容が1つのテーブルに対応していない場合によく使われるとおもいます。例えば、CSVファイルの内容をインポートして各テーブルにデータを登録する場合のファイルアップロード画面用でテーブルなしモデルを使うと便利です。 このメモではこの「テーブルなしモデル」する方法を紹介します。 なぜ「テーブルなしモデル」を使うか テーブルなしモデルを利用することで以下の3つのメリットが得られると思います。 ActiveModelの強力なバリデーション機能を使える ⇒ 自分でバリデーションロジックを書かなくて済みます 他のソースコードとの統一性が保てる ⇒ 入力をモデル化することでform_forなどのメソッドが使えるため、テーブルありの場合の

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

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

    Rails – Deviseのコントローラをカスタマイズする方法 | 株式会社田村倉庫
    razokulover
    razokulover 2013/12/29
    deviseを拡張するにはdeviseの元controllerを継承してsession,restrationコントローラを独自に作成する必要がある。
  • 1