2013-09-01から1ヶ月間の記事一覧

Rails4 ActiveRecordでorを使用する

whereでORを使用したので、メモ。Userにclass1_id、class2_id、class3_idがあり、そこにはClassのidを登録するものとする。 class1_id、class2_id、class3_idのどれかが1であるユーザーを探したい。 class1 = User.where(:class1_id => 1) class2 = User.whe…

Rails4 トランザクション内で故意にエラーを起こす

トランザクション内で自分でチェックを行い、エラーがあった際にはロールバックしたかった。 トランザクション内で故意にエラーをおこすにはraiseを使うようだ。例 class << self def add_grouping(group_id, user_ids) begin self.transaction do user_ids.…

Rails4 scaffoldで作成したファイルの削除方法のメモ

scaffoldで作成したファイルを削除する方法をメモしておく。 rails destroy scaffold コントローラ名 下記のようにscaffoldで作成したファイルを削除するには、 rails g scaffold user name:string 次のように記載して実行する。 rails destroy scaffold use…

Rails4 includesで関連テーブルを先読み

グループに所属するユーザーの名前一覧を表示したかった。 Groupテーブルにはuser_idを持つ。Userテーブルのnameにはユーザー名が入っている。関連テーブルの先読みをする場合、includesを使用するようだ。Groupのコントローラーのindexに下記のように記載す…

Rails4 外部キー名が異なる場合のhas_many through

リレーションで外部キーを変更したあと、has_many throughをしようとして躓いたので、メモ。UsersテーブルとSalesテーブルとProductsテーブルがあるとする。 UsersテーブルのidとSalesテーブルのcustomer_idを紐づけ、中間テーブルであるSalesを介さずにProd…

Rails4 リストボックスで複数登録

リストボックスで複数登録するときにちょっと手こずったので、めも。ビューに下記のように記載。 <%= form_for(@sales) do |f| %> <div class="field"> <%= f.label :customer_id %><br> <%= f.select :customer_id, @users.map {|user| [user.name, user.id]}, {:selected=>f.objec</div>…

必要なカラムの値を配列で取得する方法

必要なカラムの値を配列で取得する方法をメモ。UsersテーブルからグループIDが2のユーザーIDを配列で取得したい場合、下記のように記載する。 user_ids = User.select(:id).where(:group_id => 2).map(&:id) 不動産に興味を持ち始めたエンジニアのメモ帳…

rails4 リレーションで外部キー名を変更

リレーションで外部キーを変更したので、メモ。UsersテーブルとSalesテーブルがあるとする。 UsersテーブルのidとSalesテーブルのcustomer_idを紐づけたかった。 class User < ActiveRecord::Base has_many :sales, :foreign_key => "customer_id" end class…