k01ken’s b10g

He110 W0r1d!

Railsで詰まったところ(バリデーション編)

開発環境は、Windows 7 Professional(32bit) + ruby 2.3.3p222 + Rails 4.2.1。

■バリデーションに引っかかったときにビュー側でメッセージを表示する
モデル名がItemで、itemsテーブルにデータを入力しようとする際には以下のように書きます。

<% if @item.errors.any? %>
	<% @item.errors.full_messages.each do |message| %>
		<li><%= message %></li>
	<% end %>
<% end %>

参考サイト
すぐ役立つ!Railsでエラーメッセージを表示する方法 | TechAcademyマガジン
Railsのモデルのバリデーションエラー errors や full_messages の使い方 - Rails Webook

Sublime Text 3を使う

開発環境は、Windows 7 Professional(32bit)。

1.DOWNOAD FOR WINDOWSボタンをクリックし、インストーラをダウンロード
f:id:k01ken:20180718213358p:plain

2.ダウンロードしたインストーラを実行

3.Nextをクリック
f:id:k01ken:20180718213415p:plain

4.Nextをクリック
f:id:k01ken:20180718213425p:plain

5.Nextをクリック
f:id:k01ken:20180718213432p:plain

6.Installをクリック
f:id:k01ken:20180718213440p:plain

7.Finishをクリック
f:id:k01ken:20180718213448p:plain

8.実行して、適当なソースコードを書いて、保存する
f:id:k01ken:20180718213920p:plain


■設定の変更
1.ソフト上部のPreferencesタブをクリック

2.Settingsをクリック

3.エディタの設定は、json形式で保存されていて、基本的に、設定が書かれた元のjsonファイルは一切変更せずに、空のjsonファイルで上書きすることで、修正をする。
今回は、試しに、Tabキーを使った時の半角スペースの数を変更する。デフォルトでは4なので、2に変更する。
f:id:k01ken:20180718215239p:plain

4.Ctrlを押した状態でFキーを押して、検索ボックスを出現させて、左側のエディタの設定のjsonファイル部分を1回クリックして、フォーカス状態にしてから、tabと入力し、Enterキーをクリックする。
f:id:k01ken:20180718215253p:plain

5."tab_size": 4と書かれている部分が出現したので、これを右側の空のjsonファイルに上書きしていく。
f:id:k01ken:20180718215304p:plain

6.これで、Ctrlキーを押して、Sキーを押して、保存することで、設定変更が反映される。


ソースコードを開く時の既定のエディタをSublime Text3にする
1.既定のエディタをSublimeにしたいソースコードを右クリック(例えばRubyの.rbファイルなど)

2.プログラムから開くをクリック

3.参照をクリック

4.Sublime Text3/sublime_text.exeを選択して、開くボタンをクリックする

5.この種類のファイルを開くときは、選択したプログラムをいつも使うにチェックを入れて、OKボタンをクリック

※もし、ここで、ソースコードのアイコンが変わらなければ、続けて、以下を行う。

6.もう一度、先ほどのファイルを右クリックして、プログラムから開く - 既定のプログラムを選択をクリック

7.Sublime Textを選択して、この種類のファイルを開くときは、選択したプログラムをいつも使うにチェックを入れて、OKボタンをクリック

Reactを使う

開発環境は、Windows 7 Professional(32bit) + Node.js v8.11.1。


※Node.jsがすでにインストールされていることが条件です。

1.コマンドプロンプトを実行し、以下のコマンドを実行する

npm install -g create-react-app

2.次にカレントディレクトリを移動し、ディレクトリを作成する

cd /
mkdir react-sample
cd react-sample

3.Reactの雛形をインストールする。インストールが完了するまでにちょっと時間がかかります。

create-react-app sample-app


4.インストールが完了したら、インストールしたディレクトリへカレントディレクトリを移動させます。

cd sample-app

5.サーバーを起動し実行します(起動するまでにちょっと時間がかかります)。以下のコマンドを入力してから、http://localhost:3000/へアクセスしてください。
何もしなくても、サーバーが起動すれば、自動的に、http://localhost:3000/へアクセスします。

npm start

f:id:k01ken:20180711001307p:plain

6./sample-app/src/App.jsを起動して、ちょっと修正してみる。

        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>

の下に

        <p>Hello React</p>

を追加してみると、ブラウザをリロードすることなくすぐにページが修正されます。
f:id:k01ken:20180720170308p:plain

参考リンク
React.jsで社内システムを作る(React.js基礎編) |DODA Creator's Blog

PaizaCloudを使う

開発環境はWindows 7 Professional(32bit)。

オンライン上で無料で手軽にLinuxサーバーを実行し、サーバーやデータベースの動作を試したいので、PaizaCloudを使ってみることにしました。Windowsユーザーであればオススメだと思います。有料版であれば、開発から公開まで一気にやることができます。

1.サイトへアクセスする
PaizaCloud Cloud IDE - Browser-based web development environment for Ruby on Rails, PHP, Java, Django, Node.js...

2.灰色の三本の横線をクリックし、登録無料リンクをクリックする
f:id:k01ken:20180709152524p:plain

3.メールアドレス、ユーザー名、パスワードを入力し、reCAPTCHAをチェックして、
アカウント作成ボタンをクリックする。
f:id:k01ken:20180709152535p:plain

4.入力したメールアドレスにメールが送られているので確認し、メール内に書いてあるリンクをクリックすると、登録完了。

5.新規サーバー作成のページへ飛ばされるので、青い新規作成サーバーボタンをクリックする。
f:id:k01ken:20180709153149p:plain
※自分の場合、firefox 58.0.2でやってみると、なぜか、クリックが反映されませんでしたが(ブラウザのバージョンのせいか、入れているアドオンのせい?)、chrome 67.0.3396.99(アドオンは一切入れていない)は、問題なく実行できました。

6.今回はとりあえず、無料プランのプラン選択ボタンをクリックする
f:id:k01ken:20180709160825p:plain

7.サーバー名、Web開発、データベース、アプリケーション、サーバーを選択し、新規サーバー作成ボタンをクリックする。
※今回は、サーバー名はkoiken、Web開発はPHP、サーバーはApache、データベースはphpMyAdminを選択しました。
f:id:k01ken:20180709161058p:plain

8.index.phpが書かれているウィンドウに、

<?php
  echo "<h1>Thank you Paiza</h1>";
?>

と入力し、左上の青色の保存ボタンをクリックし、ブラウザ側のウィンドウの更新ボタンをクリックすると、変更が反映されている。
f:id:k01ken:20180709161711p:plain

Laravelでマイグレーションする

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。

php artisan make:migration create_テーブル名_table --create=テーブル名

と入力してRailsでいうマイグレーションスクリプト(テーブルの中身を定義するためのファイル)を作成する。
/database/migrationsディレクトリ内に作成されている。


参考リンク
CakePHPに慣れた私がLaravel触ってみる

Laravelでview部分の共通テンプレートの作成

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。

CakePHPのようにlayoutsディレクトリにdefault.ctp(HTMLの共通テンプレート)がないので、最初は戸惑ったのですが、Laravelでは自分で作る必要があるようです。

/resources/viewsディレクトリ内であれば、どこに作成しても良いのですが、今回は、/resources/viewsディレクトリ内にlayoutsディレクトリを作成して、その中に、共通テンプレートをdefault.blade.phpという名前で保存します。

/resources/views/layouts/default.blade.php

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="utf-8">
</head>
<body>
	@yield('content')
</body>
</html>

/resources/views/users/create.blade.php

@extends('layouts.default')

@section('content')
  <h1>新規登録</h1>
  <form method="post" action="./add">
    ユーザー名:<input type="text">
    パスワード:<input type="text">
    <input type="submit">
  </form>
@endsection


参考リンク
初めてのLaravel 5.1 : (5) Bladeでレイアウトを作る – ララ帳