Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
概要 Railsの既にレコードが存在しているテーブルにnull falseを指定したカラムを追加したいと思った時の挙動について。 結論 null: false に加えて default を指定してあれば、既に存在しているレコードにはdefault値がセットされるため、マイグレーションでカラムを追加してもエラーになりません。 実行内容 マイグレーションファイル内容 class AddColumnToUser < ActiveRecord::Migration[5.1] def change add_column :users, :send_status, :integer, limit: 2, default: 0, null: false, comment: '送信ステータス 0:送信前, 1:送信済, 2:送信失敗' end end +----+------------+--------
初めてのツイートアプリが開発できたので、復習と頭の整理をかねてまとめました。 開発の流れに沿って登場順です。 データベース準備まで mkdir projects 「projects」というディレクトリを作成する rails new application -d mysql 「new application」というアプリケーションを「mysql」データベースを使用して作成する bundle install Gemfileの内容にしたがってGemをbundlerを利用してインストールする bundle update Gemのバージョン指定を管理している「Gemfile.lock」というファイルを更新する(Gemに対してバージョン指定を行った場合に行う) rake db:create database.ymlの内容に基づいてデータベースを新規作成する(何も起こっていないように見えるけど大丈夫)
はじめに 本記事は、mongoidでこういう検索条件で検索をしたいのだけど、どうやったらいいのか?という痒いところに手が届くように、その他のmongoidの記事では触れていない部分に触れていきます。 サンプルが最初は少ないですが、順次更新していく予定です。 RubyでMongoDBを使おうとする人のお役に立てれば幸いです。 目次 その1:件数を指定して取得したい場合 その2:特定の条件を含めない結果が欲しい場合 その3:特定のモデルとアソシエーションを組んでいるモデルがデータとして存在するかを判定したい場合 軽く前提事項を確認 mongoid はRailsにおける ActiveRecordのような感覚で、MongoDBを扱えるようにしたgemです。 実行環境 MongoDBのバージョン : 3.2.11 mongoidのバージョン : 4.0 事前にbrewの以下のコマンドでMongoDB
そもそも1: ActiveRecordとは ・Ruby on Railsで採用されているOR Mapperのこと。 ・モデルとテーブルをつなぎ合わせることでRailsからテーブルのレコードにアクセスできるようにする役割がある。 ・Railsにデフォルトでインストールされており、実際に利用する際には ActiveRecord::Base というクラスを継承して使用する。 *ORM (オブジェクトリレーショナルマッピング)とは、直接SQL文を書く代わりに非常に短いコードでデータベースの読み書きを行える機能のこと。OR Mapperとは、そのためのモジュールのこと。 そもそも2: ActiveRecord::Baseメソッドとは ・ActiveRecord::Baseで定義されている「テーブルにアクセスして情報を取得するためのメソッド」のこと。 ・モデルクラスはこのActiveRecord::B
No template found for AAController#BB railsのcontrollerにて特定のメソッドを定義したにも関わらず、設定したアクションが行われないケースにおいて、terminalを覗くとこのような記述がある場合の解決法 BB.html.erbを作成 Rails 5 No template found errorより Rails looks for a view file to render when a action is called, and it's looking for a file with the same name as the action. Railsはアクションが呼ばれた際にそれに該当する同名のファイルを探すので、ファイルをview directoryに作成すれば解決するとのこと。 redirect_toの記述忘れ 僕の場合はこちらで
https://qiita.com/keeya/items/c96a0393c76f5560ee41 https://qiita.com/puremoru0315/items/f1d459b663fd3b715dee https://qiita.com/To_BB/items/01863aa50d628c069b64 Twitterログイン認証を解説する記事は数多いですが、Railsチュートリアルなどでメール認証を実装してしまった後だと、残念ながら上の記事にあるコードをそのままコピペしてもログイン認証は機能しません。 なんでって? self.find_or_create_by(provider: provider,uid: uid)では、バリデーションに弾かれてしまうからです。 find_or_created_byメソッドは、引数で渡したカラムでfindをかけて引っかからなかったらcrea
RubyインタープリターであるMRIは、大規模なRailsアプリケーションでメモリー不足になりがちという深刻な問題があります。MRIはデフォルトでOSのメモリアロケーター(主にglibc)を使用しますが、Rubyのメモリー割り当てパターンでは上手く動作しないようです。この動作はLinux上のglibc特有のもので、macOSやBSDは、より品質の良いメモリアロケータを持っているため、断片化の傾向は見られません。 Nate Berkopec氏はRubyのメモリ周りに関する記事を公開しており、そちらにかなり詳しく書かれているので興味がある場合はそちらを見ると良いと思います。 下記のようにRubyのメモリアロケータをjemallocに切り替えることで、かなりの効果が見られます。 Before After しかし、例えばAlpine Linuxでは互換性の問題があるため、AlpineベースのDoc
本番環境にService Workerを導入しましたので、そちらの実装方法についてまとめます。 一部キャッシュ管理にworkbox-swを使ってます。 正直Railsはあんまり関係ないかも。 導入方法については下記記事を書きましたので、そちらを参考にして見てください [Sprockets管理のRails4環境でWebサイトをPWAに対応する方法のまとめ(準備〜デプロイ編)] (https://qiita.com/ykyk1218/items/f296d9078c71cd27db78) 各種イベントハンドリング キャッシュ管理 オフライン対応 計測 エラーハンドリング 上記5つの視点でそれぞれの実装方法を確認します。 javascriptの書き方は今風ではなく、古い書き方になっていますが、ご了承ください........ 今回のやりたいこと全体像 カテゴリAの記事にアクセスした時に、カテゴリA
TL;DR Devise Securityを使うことで、過去に使用されたパスワードの制限や多重ログイン禁止などのエンタープライズ向けのセキュアな機能を提供できる。 はじめに RailsでWebアプリを作成する際、Deviseを使って、ユーザ管理を行うことが多いと思います。 Deviseはかなり便利なgemですが、過去に使用されたパスワードの制限や多重ログイン禁止などのエンタープライズ用のセキュリティ要件までは取り扱っていません。 そこで今回はDeviseの使用を前提として、さらにDevise Securityを使用して、よりセキュアなRailsアプリを構築します。 Devise Securityについて Devise Securityは、Deviseの拡張で、下に挙げるような機能を追加します。 ちなみに、開発が止まってしまったDevise Security Extensionから公式にfo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く