chuckです。
以前、Railsでロシア語の単語帳アプリケーションを作成しました。
Herokuで公開しています。
公開しているバージョンを1.0とすると、今回からは2.0を目指して開発を進めていこうと思います。
様々な単語一覧
今回追加するのは「様々な単語一覧画面」です。全ての単語を一括表示する画面がすでにあるのですが、そのバリエーションを増やしていきます。
前回までで、カンタンな枠組みは完成しています。
ここに肉付けしていきます。
作るのは以下の3つです。
1, 品詞別の単語一覧
2, カテゴリ別の単語一覧
3, レベル別の単語一覧
条件付き検索
データベースから単語を取得する際に、条件をつければOKですね。
ちなみに、全件取得のアクションがこちら。(6行目)
ペジネーションを実装してしまったので厳密には全件ではないですが、まあこんな感じで取得できます。
条件指定で検索するには、find_byを使うらしいです。
find_by ( カテゴリ = カテゴリ名 ) てな感じでいけそうですね。
というか、時間が経ちすぎてカラム名すら忘れてしまいました…。
rails dbでDB環境に入る
rails db コマンドでDB環境にアクセスできるのでした。
.schema コマンドで定義済みのテーブルとカラムを確認。
ありました!
カテゴリのカラム名はcategoryでした。
アクションの完成
アクションを書きました。
それぞれのカラムで検索しています。
paramsはたしか、POSTメソッドで渡ってきたリクエストの値だった気がします。
ビューを書く
とりあえずこんな感じで。だーっと表示させてみます。
暫定的に、カテゴリを「形容詞」に絞りました。
いざ、実行!
エラーでした。
eachがない??そんなバカなー。
find_byは1件のみ表示
見直しました。どうやらfind_byは1件のみ取得するようです。
(Qiitaより)
1件のデータはeachメソッドを持たないのかもしれませんね。
複数取得はwhere
複数のデータを取得するにはwhereを使うようです。
(Qiitaより)
修正
アクションを修正しました。
いざ、リトライ!
出ましたー!
形容詞の単語のみ、表示されています。
他のページも同様にコーディング。
件数が少ないとレイアウトが崩れてる…!修正しなくてはですね。
まとめ
時間が来てしまったので、今日はここらで。
次回はビューに選択ボタンを用意して、品詞や難易度を切り替えられるようにします。