CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
![scaffoldで生成されたコードから紐解くRails 5の基本構成](https://cdn-ak-scissors.b.st-hatena.com/image/square/93508fcdb070ac3e185d0af016a12327378d527b/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F9914%2F9914_th.png)
tl;dr (最初に結論) Railsのモデルに新しくboolean型のカラムを追加するときは必ずデフォルト値を設定しておいた方がいいです。 すなわち、 のように書きましょう、ということです。 default: false はデフォルト値を false に設定することを示しています。 なので既存のレコードは notification_allowed カラムの値が false になります。 null: false は NULL (Rubyでいうところの nil)が設定されることを禁止するオプションです。 必須ではありませんが、NULL が入ると面倒な問題を引き起こしやすいので基本的に付けておくことをオススメします。 それではこの件に関する詳しい内容を以下で説明していきます。 データベースとRubyで異なる NULL / nil の扱い デフォルト値を明示的に設定しなかった場合、新しいカラムに
こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全に行なうための動作確認のやり方について参考になればということで、本記事でも改めて紹介いたします。 CookpadのRailsアップグレードの流れ Rails 4.1から4.2にアップグレードした際の例を紹介します。 CIにRails 4.2用ジョブを用意 まずはRails 4.2にアップグレードするためのrails42ブランチでテストを通します。リリースするまでこのブランチはmasterからrebaseし続けるので、リリースまでテストを通る状態を保つため、CIにrails42ブランチ用のジョブを用意しま
Macで漫然とRubyをインストールすると、rails consoleやirbで日本語を使えないことがある。(どうなるかというと、日本語の変換を確定した途端に「\U+FFE3\U+FFAB」みたいにUnicodeのエスケープっぽいものが表示される。)そうなった時の直し方を説明する。 なぜ日本語を使えないのか 大雑把に言うと、Macに付属しているコマンドライン処理のライブラリ(libedit)が日本語に対応していないから。これを使わず、libreadlineを使うようにすれば直る。 誰がlibeditを使っているのか Rubyをインストールしたディレクトリのどこかにあるreadline.bundleが使っている。findコマンドを使えば見つけられる。例えば、rbenvを使ってRubyをインストールしたなら、下のコマンドで見つかるだろう。
たぶんこれを踏んでる。 history.rb の save_to_file でどうやら保存できない模様。 $ Pry.history.instance_eval {def hoge line; binding.pry end; @saver = method :hoge} $ にほんご $ Pry.history.instance_eval {@saver = method :save_to_file}
google先生に聞く。 http://attonblog.blogspot.jp/2015/04/pry-rails-multibyte-char.html 上記を参考に設定ファイルをいじる。 ~/.pryrcにある、なければ新しく作ったファイルに書き込みます。 Pry.history.instance_eval do @saver = ->(line) { save_to_file (line.force_encoding(STDIN.external_encoding))} end # 適用したいrubyバージョンが既にインストール済みの場合は一度uninstall $ rbenv uninstall 2.1.1 # readlineのinstall $ brew install readline $ brew link readline --force # readlineを利用し
通常アプリケーションを利用する場合、単にリクエストだけを送信することは少なく、例えば新しいデータを登録する場合には登録する情報をブラウザ上で入力し、パラメータとしてリクエストと一緒に送信されてきます。ここでは送られて来たパラメータをアプリケーション側で取り出して利用する方法を確認します。 1.パラメータの取得 2.クエリ形式でのパラメータ 3.POSTを使って送信されたパラメータの取得 4.パラメータでハッシュを渡す 5.パラメータで配列を渡す 利用者からのリクエストにパラメータをどのように含めるのかは「ルーティングの設定」次第ではありますが、HTTPメソッドとしてGETを使う場合、Railsでは次のようなURL形式でパラメータをURLに含めてリクエストを送信します。 例として「travels」コントローラの「show」アクションを呼び出す時にパラメータ名「id」の値をリクエストに含める場
Railsではバリデーション(Validation)という仕組みがあります。 フォームなどでユーザーからの入力値をDBに保存する前にその値が正しいものかモデル層で(システムとして許可している値か)を検証する仕組みです。 バリデーションの基本的な流れ、バリデーションの定義とバリデーションのテスト方法、バリデーションのスキップなどのバリデーションの基本についてまとめました。 動作確認 Rails 4.1 ActiveRecord 4.1 shoulda-matchers 2.6.3 目次 1. Railsでのバリデーションの流れ 2. バリデーションを定義する 2.1. 存在チェック(presence) 2.2. 一意性(ユニーク制約)のチェック(uniqueness) 2.3. 長さのチェック(length) 2.4. フォーマットのチェック(format) 2.5. 数値の値チェック(nu
[Rails]migrationで外部キーを設定する際に、参照先テーブルと異なるカラム名をつけたい場合 migration時に外部キーを設定する場合、referencesを使いますが、参照先テーブルと異なるカラム名をつけたい場合はどうしようと思い調べてみました。 Usersテーブルのuser_idを、Likesテーブルのuser_idとtarget_user_idの外部キーとして設定したい場合のサンプル migration# db/migrate/xxxx_create_likes.rb class CreateLike < ActiveRecord::Migration def up create_table :likes do |t| t.references :user t.integer :target_user_id, :null => false # references を使
Web サーバーと Rails の基本 このページでは、基礎的な PC の知識と、HTML に関する知識、簡単なプログラミング、データベースの知識を前提にしています。 Rails と共に Web アプリケーション開発の旅にでる前に、色々と役に立つ武器があると効率良く開発を進めていくことが出来ます。ここではそのような知っておいたほうが開発がスムーズになること紹介していきます。 Web アプリケーションの仕組み そもそも、Web アプリケーションはどのように動いているかを理解していないと Rails の話をしても理解するのは大変です。まずは基礎的なところから説明していきます。 サーバーとクライアントの通信 皆さんが使用している PC は Web アプリケーションの用語ではクライアント(厳密には今皆さんが使っているブラウザがクライアント)と呼ばれます。対して、皆さんに何かしらのサービスを提供する
Railsでは、ActiveRecordのhas_manyかhas_and_belongs_to_manyを使うことで、DBの「多対多」のテーブル間の関連をモデルに簡単に実装することができます。 ※has_manyとhas_and_belongs_to_manyの違い 多対多関係を作るには、中間テーブルを作成する必要があります。 has_manyの場合、中間テーブルを表現するクラスを作らないといけないが、その中間テーブルに属性やバリデーションなどを追加できます。 has_and_belongs_to_manyの場合、中間テーブルのクラスを作らなくて良いが、中間テーブルにカスタマイズができません。 個人的には、そこまで手間ではないので、has_manyで拡張性をもたせた方がよいと思います。 動作確認 Rails 4.1 ActiveRecord 4.1 目次 多対多関連とは マイグレーション
new, createアクション この章ではCRUDのC(Create)にあたる新規登録を行うための2つのアクション、newとcreateについて説明していきます。 説明に使うアプリは前の章でつくったものを引き続き使います。 概略 前の章での「CRUD遷移図」において、newとcreateはこの部分になります。 新規登録は2つのアクションで構成されます。処理の流れは以下のようになります。 ステップ1: newアクション(新規作成画面) newアクションが実行され新規入力画面を表示します。ここで本のタイトルとメモを入力します。Create Bookボタンを押すと、次に画面のないcreateアクションが実行されます。 ステップ2: createアクション(画面なし) つづくcreateアクションで、前のステップで入力されたタイトルとメモで本のデータを新規登録します。 この流れを詳しく説明してい
こんな風になってるはず。 どのページでも共通に読み込みたい JavaScript が以下の二つだった場合。 app/assets/javascripts/hogehoge/fugafuga.js app/assets/javascripts/areare/korekore.js.erb //= require_tree . を削除してこんな風に修正します。
本当にいっっつも忘れる(T-T) ので、よく使うコマンドだけメモ なお、網羅的な解説は以下のサイトがよくまとまっている! railsコマンド(rails) - Railsドキュメント はじめに 全てのrailsコマンドは-h (or --help)オプションでヘルプが見れる $ rails -h $ rails generate -h $ rails generate scaffold -hgenerateのショートカットはg $ rails g scaffoldgenerateは-p, [--pretend]でドライランできる $ rails generate scaffold AdminUser name:string mail:string -pgenerateで生成したファイルを削除するにはdestory $ rails destroy AdminUser 主要generateコマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く