Fix associtation and UI

# 前回PRとの関係
前回PRまで`user has many orders`で作っていました。
しかし、`user has one order`のほうが良いとわかりました。

`user has many orders`ですと、`app/views/arriveds/show.html.erb`で不具合が出ます。
リソース設計としても、このアプリケーションは注文に期限を設けない限り、１ユーザーは１つの注文しかできないのが自然と教えて頂きました。
そのため、修正します。

また、それとは別に、より良いUIにするため注文作成時のビュー変更作業をします。

## １オーダーにする理由について

### `user has many orders`の場合
----------------------------------------------------
「紅茶１個、緑茶１個」を注文したとします。その後で「烏龍茶１個と、追加の緑茶１個」を注文したくなったとします。
これをシステムに反映するには、注文「烏龍茶１個と緑茶１個」を新規に作成することになります。

この場合

* `user`が１つあり、 `order`を２つ持っている。
  * １つめの`order`は、以下２つの`order_detail`を持つ
    * 紅茶１個を意味する`order_detail`
    * 緑茶１個を意味する`order_detail`
  * ２つめの`order`は以下２つの`order_detail`を持つ
    * 烏龍１個を意味する`order_detail`
    * 緑茶１個を意味する`order_detail`

ということになります。
注文する緑茶は２個なのに、それを別々の`order` でわけていることが特に不自然なのだと思います。
（また、前回注文を削除して新規注文を作成するという方法もとれますが、同様に不自然なのだと思います。）
     
### `user has one order`の場合
----------------------------------------------------
同じことをしたくなった場合、以下のように、より自然な形で反映が可能です。

* `user`が１つあり、 `order`を１つ持っている。
* `order`は、以下３つの`order_detail`を持つ
     * 紅茶１個を意味する`order_detail`
     * 緑茶２個を意味する`order_detail` 
     * 烏龍１個を意味する`order_detail`  

# このPRで何をするか
* [x] `user has one order`にして、現状の機能を壊さないように他の場所も修正を入れます。
* [x]  `orders#edit`のビュー（ユーザーインターフェース）を大幅に変更します。

# 終了条件（どうしたらWIPが取れるか）
1. [x] `user has one order`かつ、常に`user`は`order`を持つようにすること。
2. [x]  UIを変更すること。
 * [x] `select`要素を減らして見やすくする
 * [x] 合計注文金額を出す
 * [x] 空白の商品名、単価を選んだ時は空白でないものを選択するよう促すメッセージを出す
3. [x] 規約や慣習に沿った、読みやすいコードであること。
4. [x] 主要な機能のfeature specとmodelのうち不安な部分のspecを書いてgreenにすること。
教えて頂き、ありがとうございます！勉強になります。

> ログに出るSQLも貼っておいていただけると

ログなしだと判断しようもないですよね。次回からはログもちゃんと貼ります！
不要かと思いますが一応今回のも貼ってみます。（FROMとWHEREの前に改行と空行、JOINのところで改行を入れています）
```
SQL (0.9ms) 
SELECT "users"."id" AS t0_r0, "users"."name" AS t0_r1, "users"."created_at" AS t0_r2, "users"."updated_at" AS t0_r3, "users"."remember_token" AS t0_r4, "orders"."id" AS t1_r0, "orders"."user_id" AS t1_r1, "orders"."created_at" AS t1_r2, "orders"."updated_at" AS t1_r3, "orders"."state" AS t1_r4, "order_details"."id" AS t2_r0, "order_details"."order_id" AS t2_r1, "order_details"."item_id" AS t2_r2, "order_details"."quantity" AS t2_r3, "order_details"."created_at" AS t2_r4, "order_details"."updated_at" AS t2_r5, "order_details"."then_price" AS t2_r6, "items"."id" AS t3_r0, "items"."name" AS t3_r1, "items"."price" AS t3_r2, "items"."created_at" AS t3_r3, "items"."updated_at" AS t3_r4, "items"."nestle_index_from_the_top" AS t3_r5 

FROM "users” 
LEFT OUTER JOIN "orders" ON "orders"."user_id" = "users"."id” 
LEFT OUTER JOIN "order_details" ON "order_details"."order_id" = "orders"."id” 
LEFT OUTER JOIN "items" ON "items"."id" = "order_details"."item_id” 

WHERE "orders"."state" = 2 AND (EXISTS (SELECT 1 FROM order_details WHERE order_details.order_id = orders.id))
```
>問題になりそうなのであれば都度 explain でちゃんと見ていく

SQLの`explain` の存在を知りました。Railsでも`.expalin`で簡単に呼べるのですね。見方を勉強してきます。

> SQLのhaving句を連想させてミスリード

なるほど、scopeの文脈だとSQLの語彙を連想しますよね。連想して欲しい時以外にSQLのキーワードを使うべきでないということですね。

> 一件以上明細のあるオーダーというものに対して名前をつけて

ぱっと思い浮かぶのは`filled_order`とかですね...悩ましいのでしばらく英和辞典を引いて考えてみようと思います...!