タグ

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

  • Rails – 親子テーブルを一度に更新する方法 | 株式会社田村倉庫

    上記のような一画面に基情報(宛先、住所)と複数の明細情報(物品名、数量)がある画面で入力された情報を親子関係にある基テーブル(発送テーブル)と明細テーブル(物品テーブル)に同時に登録したい場合が業務アプリではけっこうあると思います。 Railsではこのようなケースに簡単に対応するための便利機能が用意されています。具体的にはモデルでaccepts_nested_attributes_forという設定を、ビューでfield_forメソッドを利用します。この機能を利用すると以下の2つメリットがあるので是非活用することをオススメします。 ソースコードが短くてすむ ⇒ 後述しますが、特にコントローラー側の記述量は激減します。 明細データへのバリデーション結果が画面にキレイに表示できる ⇒ 親子関係をRailsに認識させることで明細データのバリデーション結果を表示するロジックを個別に実装する必要が

    Rails – 親子テーブルを一度に更新する方法 | 株式会社田村倉庫
  • Rails – Deviseのコントローラをカスタマイズする方法 | 株式会社田村倉庫

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

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