スポンサーリンク
4th(Rails)DAY13の課題は「Progate Rails コース(3章まで)」です。
DAY12では投稿一覧ページを作成しながらデータベースの操作を学習しましたが、DAY13では投稿詳細画面と新規投稿ページの作成を通して、データベースの検索方法と実際のレイアウトからデータベースを更新する方法を学習していきます。
この3章を終えると道場コースが挟まるので、ここが一つの区切りになります。
スポンサーリンク
目次
テーブルの特定レコードを取得する:find_byメソッド
特定のレコードを取得するためには「find_byメソッド」を使用する。
1 |
変数 = モデル.find_by(カラム:データ) |
URLに変数を含める
ルーティングのURL部分に「:」を使用することで、URLに変数を含めることができる。
1 2 3 4 5 6 7 8 9 |
# ルーティング # 変数の値が何であろうとも同じアクションが実行される(ワイルドカードのようなイメージ) get "XXX/:変数" => コントローラ/アクション" # コントローラ(アクション) # URLに変数を含めた場合はアクションでURLに指定した変数の値を取得できる # paramesという変数に「変数:値」というようなハッシュに値が格納されている def アクション @変数 = params[:URLに指定した変数] |
値を受け取るページのルーティング
値を受け取るページのルーティングは「get」ではなく「post」と記述する。
フォームの送信先を指定する:form_tagメソッド
「form_tagメソッド」を使用することで、フォームに入力されたデータを送信することができる。
1 2 3 4 5 6 7 |
# form_tagメソッドは「<%= %>」で囲む # 「do」と「end」の間にフォームを作成する <%= form_tag("URL") do %> # name属性に変数を指定することで送信先に値を渡すことができる(受け取り側はparams[:変数]で取得できる(中身はハッシュ)) <textarea name=":変数名"></textarea> <input type="submit" value="ボタン名" <% end %> |
リダイレクト
他のURLに転送(リダイレクト)するには「redirect_toメソッド」を使用する。
1 |
redirect_to("URL") |
データを並び替える:orderメソッド
「orderメソッド」を使用することで、テーブルからデータ取得時の順番を指定できる。
1 2 |
# 順番は「asc(昇順)」「desc(降順)」 @変数 = モデル名.all.order(カラム: :順番) |
まとめ
テーブルの特定レコードを取得したり、テーブルへのデータ追加方法などを学習しました。
通常であればいずれもSQLを記述しなければならないものが、Railsだとプログラム1行ですんでしまうので楽ですね。
楽であるが故に複雑なSQLのクエリは発行できないなどの弊害はあると思いますけど。
次は1章〜3章の総まとめの道場コースになるので、さくっと復習(自分のブログ記事を見直し)してのぞみたいと思います。
スポンサーリンク