railsのvalid?メソッドに潜んだ罠

railsのvalid?メソッドで、少し変わった仕様があったので備忘録として残しておきますー。 環境 rails1.2.3 序章 railsのvalid?メソッドは、意図しない挙動を起こすので、使う時には注意が必要です。 普通メソッド名の末尾に「?」をつけたメソッドは、メソッ…

「なぜ危機に気づけなかったのか」を読んで

問題解決の前に問題発見が必要。その問題発見をするために必要なスキル、考え方の部分でとても勉強になったのでまとめておきます。 ※かなり内容として広範囲な事柄が書かれていたので、自分が気になった部分だけ紹介していきます。 問題発見の7つのスキル 情…

【ruby】Dateクラスで正しい暦日付かどうかを判定するには

今日はrubyの話。 rubyのDateクラスを用いて、正しい日付かどうかを判定する方法。 一応実装は出来ていますが、あまり良い解決策でないように感じるので、ご助言頂けると嬉しいです! # 今日の日付を取得 date = Date.today # 引数で渡した年月日が正しい日…

【rails】create/update時に特有のvalidationの実装

RailsのActiveRecordのお話です。 recordを新しく作成する時にだけかけたいvalidationがあったり、更新する時にだけかけたいvalidationがあった経験はありませんか? そんな時、ActiveRecordはとってもお利口さん。 対象のクラスにおいて、魔法のメソッド「v…

「安全なウェブサイトの作り方」改訂第5版を読んで

「安全なウェブサイトの作り方」は、IPAが届出を受けた脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げ、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料です。それ…

【Rails】【test】fixturesファイルの読込に関してのまとめ

Railsでテストを実行する時に、fixturesが読み込まれる、読み込まれないのタイミングがあいまいだったので色々と実験して得られた結果をもとにまとめていきます。 Railsでテストを実行する方法 rubyコマンドでテストファイル名を直接指定して実行する Rakeコ…

【rails】alias_method_chainとwith_scopeに関して

Railsアプリケーションを作っていく時に使える、alias_method_chainとwith_scopeのスマートな合わせ技をご紹介します。 ※Railsは1系を利用しています。2系からはnamed_scopeが使えるので、そちらを使うべきかと。 データ構造 create_table :users do |t| t.c…

RailsDevConで学んだこと

先日RailsDevConに僭越ながら参加させて頂いたので、そこで学んだことを徒然にかいていきます。 まず主催者の方からこのDevConの目的が話されました。その中でもノウハウ共有という部分のお話が印象に残っています。 RailsにはDRY(Don't Rereat Yourself)の…

大野耐一の鬼十訓

改善の鬼と呼ばれる大野耐一さんから学んだことが書かれた本「トヨタ式 鬼十訓」を読んで、自分の習慣を反省するべきところが多々ありましたので、まとめていきます。 大野耐一の鬼十訓 君はコストだ。まずムダを削れ。それなくして能力は展開できない。 始…

【Rails】form_tagとform_for

form_tag と form_forの違いについて、まとめていきます。 ■form-tagについて フォームの開始/終了タグを作成する。 <% form_tag(:controller => "hoge", :action => "fuga") do -%> <% end -%> 実行結果↓ <form action="/hoge/fuga" method="post"> </form>※このメソッドでフォームを作成する際には、 では…

ルートページの設定

特定のURL(トップページのURLなど)で特定のアクションを呼びだしたい場合、configフォルダの下のroutes.rbというファイルで設定する。 トップページで、コントローラー…『main』アクション…『index』を指定したい場合 map.connect '', :controller => 'main'…

viewにおけるRubyの記述方法

『』の間にRubyコードを記述すると、認識してくれる。 『』で囲んだ部分の変数の値、式やメソッドの結果は文字列として出力される。

設計哲学

DRY(Don't Repeat Yourself=繰り返しを避けよ) ⇒同じことを何度も記述するのは避けるべきだという原則です。 DRYを意識することで、次のようなメリットが得られます。 開発効率が上がる 仕様変更等での修正精度が上がる プログラムとしてスマートになり、…

コンポーネント

Railsの実態は、コンポーネント(Rubyで書かれたライブラリ=汎用性の高い機能群)の集合体です。 Railsは次のようなコンポーネントで構成されています。 Active Record::モデル Action Pack Action View::ビュー Action Controller::コントローラ Act…

Controller(コントローラー)

モデルとビューの橋渡しを実現するプログラムの部分。 ビューからデータを受け取って、そのデータを適切なモデルに渡したり、 モデルから適切なデータを取ってきて、ビューに渡したりと様々な役割を果たしている。 そのコントローラーが実行するそれぞれの仕…

View(ビュー)

ユーザーに見せるインターフェイスの部分。 データを直接扱うのではなく、あくまでその表示や見せ方を担当します。 原則として、ビューでデータを準備することはしません。

Model(モデル)

データベースのデータを管理している部分。 データの出し入れや読み書きする際に、不正なデータが紛れ込まないよう監視したりしている。 データに関する命令はコントローラから渡されますが、その取扱い方はモデルだけが知っています。

導入

Ruby on Railsとは、Webアプリケーションを開発するためのフレームワークです。 ●ところで、Webアプリケーションって何? Webアプリケーションとは、ウェブ(WWW)を介して、何らかのサービスをユーザーに提供するものです。ここで言う「サービス」とは、単に…

【Ruby on Rails】基礎Ruby on Rails-Chapter1

【rails】observe_fieldについて

業務で実装する機能で、observe_fieldを使う機会があったので、まとめておく。 具体的にしたいこと 1つのselectで、ある値を設定したら、別のselectのプルダウンの選択肢が特定されるようにしたい。 実際のコード まずは監視されるselectを作成する。 anima…

Ruby on Railsでradio_buttonを使う。

Ruby on Railsでラジオボタンを使うときに少しハマったので、メモしてきます。 ■サンプルコード <input type="radio" name="hoge" value="fuga" checked> ●name=""(部品の名前を指定) 複数のラジオボタンに同じ部品名を付けることで、1つのグループを作ることができる。 また、ラジオボタンでは、そのグループの中…

【Ruby on Rails】Atomフィードの実装

■まずXMLファイルを生成する方法として、大きく分けて2つの方法がある。 動的に生成する。(.rxmlファイルを使う) 静的に生成する。(cronなどを使って、メソッドが実行されたと時にファイルを生成する) 今回はそれぞれについて、まとめていく。 ■動的に…

RSSとAtomについての理解

■そもそもフィード(Feed)とは何か? フィード (Feed) とは、ウェブサイト、特にブログやニュースサイトなどのコンテンツの概要もしくはコンテンツ全体を配信用に加工した文書のこと。またはそのファイルフォーマットのことをいう。より明確にするためにニュ…

コントローラの機能テスト

機能テストの作成方針 リクエストに対して,期待通りのレスポンスが返ってくるかを検証する。 publicな全アクションを網羅する。 コントローラとビューがテスト対象。基本的なビューのテストは書かなくても良い。 具体的なテストの記述方法 リクエスト生成(g…

モデルの単体テスト

ユニットテストの作成方針 DBに対して、期待通りの操作が行なえているかどうかを検証する。 モデルの全メソッドを網羅する。 デルの1メソッドに対して、最低1つ以上のテストメソッドを書く。 Railsではモデルにビジネスロジックが詰め込まれ,要となる。 モ…

前提

テストしやすいように設計する 良い設計とは「テストしやすい」ことである 良い設計とはなにか?と問われて、凝集度と結合度に関する議論を思いつく人もかもしれないが、この定義によりもっと具体性がある設計方針として、テストが考えられる。つまりEon(Ease…

testの書き方 forRoR

最近、開発をしていてテストで引っかかることが多くて困っているので、今一度テストの書き方を学びなおす事にしました。「設定より規約(CoC)」に従って、テストの書き方を自分の中で規約にしてしまおうと思います。そもそもテスト駆動開発(TDD)をしているの…

RoRにおけるデバック方法

最近WEB開発をしていて、うまく問題の原因を把握することが出来ずにデバックでハマってしまいました。そこで研修でも習ったデバック方法についてもう一度勉強し直すことにしました。

広告代理店業に必要な用語集 and more...

本日は、内定先の企業でレクチャーを受けた『広告代理店業に必要な用語集』をまとめてみようと思う。

同じ過ちを繰り返さないために,,,

昨日起こしてしまった失敗事例について、自分なりに考察してみたので、皆様に共有しておこうと思います。 迷惑をかけてしまった皆様、誠に申し訳ございませんでした。 そして今回の失敗に対して寛大に対応して下さった皆様、誠にありがとうございました。こ…