読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

import { Fun } from 'programming'

Railsでロシア語単語帳ver2.0を目指す day1. whereメソッド

f:id:chuck0523:20151008004332p:plain

chuckです。

以前、Railsでロシア語の単語帳アプリケーションを作成しました。

 

chuckwebtips.hatenablog.com

 

Herokuで公開しています。

russiup.herokuapp.com

公開しているバージョンを1.0とすると、今回からは2.0を目指して開発を進めていこうと思います。

 

 

様々な単語一覧

今回追加するのは「様々な単語一覧画面」です。全ての単語を一括表示する画面がすでにあるのですが、そのバリエーションを増やしていきます。

前回までで、カンタンな枠組みは完成しています。

chuckwebtips.hatenablog.com

 

ここに肉付けしていきます。

作るのは以下の3つです。

1, 品詞別の単語一覧

2, カテゴリ別の単語一覧

3, レベル別の単語一覧

 

条件付き検索

データベースから単語を取得する際に、条件をつければOKですね。

 

ちなみに、全件取得のアクションがこちら。(6行目)

f:id:chuck0523:20151008001407p:plain

ペジネーションを実装してしまったので厳密には全件ではないですが、まあこんな感じで取得できます。

 

qiita.com

 

条件指定で検索するには、find_byを使うらしいです。

find_by ( カテゴリ = カテゴリ名 ) てな感じでいけそうですね。

 

というか、時間が経ちすぎてカラム名すら忘れてしまいました…。

 

rails dbでDB環境に入る

rails db コマンドでDB環境にアクセスできるのでした。

f:id:chuck0523:20151008002758p:plain

.schema コマンドで定義済みのテーブルとカラムを確認。

 

ありました!

f:id:chuck0523:20151008002852p:plain

カテゴリのカラム名はcategoryでした。

 

アクションの完成

アクションを書きました。

f:id:chuck0523:20151008002954p:plain

それぞれのカラムで検索しています。

paramsはたしか、POSTメソッドで渡ってきたリクエストの値だった気がします。

 

ビューを書く

とりあえずこんな感じで。だーっと表示させてみます。

f:id:chuck0523:20151008003808p:plain

 

暫定的に、カテゴリを「形容詞」に絞りました。

f:id:chuck0523:20151008003728p:plain

 

いざ、実行!

f:id:chuck0523:20151008003843p:plain

エラーでした。

 

eachがない??そんなバカなー。

 

find_byは1件のみ表示

見直しました。どうやらfind_byは1件のみ取得するようです。

  f:id:chuck0523:20151008004036p:plain

(Qiitaより) 

1件のデータはeachメソッドを持たないのかもしれませんね。

 

複数取得はwhere

複数のデータを取得するにはwhereを使うようです。

  f:id:chuck0523:20151008004148p:plain

 

(Qiitaより)

 

修正

アクションを修正しました。

f:id:chuck0523:20151008004304p:plain

 

いざ、リトライ!

f:id:chuck0523:20151008004332p:plain

出ましたー!

形容詞の単語のみ、表示されています。

 

他のページも同様にコーディング。

f:id:chuck0523:20151008005313p:plain

 

f:id:chuck0523:20151008005336p:plain

件数が少ないとレイアウトが崩れてる…!修正しなくてはですね。

 

まとめ

時間が来てしまったので、今日はここらで。

次回はビューに選択ボタンを用意して、品詞や難易度を切り替えられるようにします。