2018-09-01から1ヶ月間の記事一覧

ranked-modelを使うときは :with_sameオプションを付けよう

前置き 自作中のTODOアプリではタスクの表示順を自由に入れ替えできるようになっています。 indexページには User の Task 一覧を表示 表示の順番はranked-model gemを使って :row_order の値で制御 それぞれの Task はjQueryUIのsortableを導入してドラッグ…

テンプレート側で出力する値の処理を行うのは避ける

表示に必要なデータはプログラム側で用意し、 テンプレートではデータを埋め込む場所や表示方法などを記述する。 前置き 「そのタスクがいくつのサブタスクを保持しているか」をindex画面に表示しています。 この部分のコードが以下です。 <td><%= task.subtasks</td>…

繰り返されるインスタンス変数の初期化をメソッドに切り出す

前置き 作成中のTODOアプリでは、ユーザーがタスクを複数所有し、それぞれのタスクがサブタスクを複数所有しています。 アクションメソッド(数個だけ抜粋) def show @user = User.find(params[:user_id]) @task = Task.find(params[:task_id]) @subtask = …

入力したテキストの改行をviewに反映する方法

このように、テキストの改行が反映されるようになります。 simple_formatメソッドを使う このメソッドは与えられた文字列に対して 文字列を<p>で括る 改行は<br/>を付ける 連続した改行は</p><p>に変換 という処理を行います。 ただ、HTMLタグなどをサニタイズする働きもあ</p>…

テキスト内のURLがaタグに変換されるようにする

目的 タスク管理アプリのタスクの説明部分にリンクを追加できるようにしたい。 つまり、text_areaなどで入力したテキストを表示する際にURLを含んでいたら自動的にリンクを作るようにしたい、ということです。 helperメソッドを作成 URIライブラリを使います…

「オブジェクト指向でなぜつくるのか」を読んだ

オブジェクト指向に対する誤解が解けた プログラミング言語は、機械語によるプログラミングからアセンブリ言語→高級言語→構造化言語というように、「より便利に」を目指してそれぞれの課題を解決するように進化してきました。 なかでも「無駄を省く」「保守…

ネストしたリソースのユーザー制御

完成したタスク管理アプリに、「ひとつのタスク内にサブタスクを作成できる機能」をアップデートで追加しました。 Subtaskモデルを作成したので、現在ルーティングはこうなっています。 Rails.application.routes.draw do get 'static_pages/home' root to: …

Herokuへのデプロイ時に苦労した話

昨日完成したTodoアプリをHerokuにアップしました! その際2箇所でつまづいたので、記録しておきます。 pg gemがインストールできない HerokuではSQLiteがサポートされていないのでPostgreSQLを使います。 sqlite3 gemをproduction環境で使わないように、 そ…