myTaskの最近のブログ記事
会員登録時にメールを送信し、クリック後会員登録完了とすることで
メールアドレスのチェックをおこなう。
railsではActionMailerという仕組みにより、簡単にテンプレートメールを送信できます。
以下5つのSTEPで実装できます。
1) Rails環境ファイルにメールサーバを設定
以下environment.rbファイルにメールサーバの設定をする
- mytask/config/environment.rbに以下追加(下線部は環境によって変更する)
2) generateを使ってActionMailerを作成する
モデルとして作成されるので注意する。テンプレートファイルはviewファイルとして生成される
3) model(accout_mailer)の編集
※app/models/account_mailer.rbに以下メソッドを追加する
4) メールのテンプレートファイルを編集する
これで完了、5分くらいでできちゃいます。
メールアドレスのチェックをおこなう。
railsではActionMailerという仕組みにより、簡単にテンプレートメールを送信できます。
以下5つのSTEPで実装できます。
1) Rails環境ファイルにメールサーバを設定
以下environment.rbファイルにメールサーバの設定をする
- mytask/config/environment.rbに以下追加(下線部は環境によって変更する)
# Include your application configuration below
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.server_settings = {
:address => "address",
:port => 25,
:domain => 'domain',
:user_name => 'user_name',
:password => 'password',
:authentication => :login
}
2) generateを使ってActionMailerを作成する
モデルとして作成されるので注意する。テンプレートファイルはviewファイルとして生成される
$ ruby script/generate mailer AccountMailer sent
exists app/models/
create app/views/account_mailer
exists test/unit/
create test/fixtures/account_mailer
create app/models/account_mailer.rb
create test/unit/account_mailer_test.rb
create app/views/account_mailer/sent.rhtml
create test/fixtures/account_mailer/sent
3) model(accout_mailer)の編集
※app/models/account_mailer.rbに以下メソッドを追加する
$ ruby script/generate mailer AccountMailer sent
exists app/models/
create app/views/account_mailer
exists test/unit/
create test/fixtures/account_mailer
create app/models/account_mailer.rb
create test/unit/account_mailer_test.rb
create app/views/account_mailer/sent.rhtml
create test/fixtures/account_mailer/sent
4) メールのテンプレートファイルを編集する
※mytask/app/views/account_mailer/sent.rhtml を編集する5) controllerからメールモデルを呼び出す
def sendmail
@user = User.find(params[:id])
AccountMailer.deliver_sent(@user)
end
これで完了、5分くらいでできちゃいます。
ログイン機能は、作成すると案外面倒なもの。
他のフレームワーク同様、Railsにももちろん他のエンジニアが作成したモジュールを
簡単に再利用できる仕組みがととのっています
他のフレームワーク同様、Railsにももちろん他のエンジニアが作成したモジュールを
簡単に再利用できる仕組みがととのっています
- まずはrootユーザに変更
$ su - root
Password:
- gemでlogin_generatorをインストールする
# gem install login_generator Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed login_generator-1.2.2
- インストールが正常に完了したら、以下コマンドで作成開始
$ ruby script/generate login account
create lib/login_system.rb
create app/controllers/account_controller.rb
create test/functional/account_controller_test.rb
Railsを覚えようと思った理由の1つがscaffoldが使ってみたかったためです。アプリケーションに必要なスケルトンをコマンド1つで作成できるという優れものです。とりあえず本の通りにやってみました。
とりあえず、helpでコマンドを確認する
とりあえず、以下のコマンドで生成されるようです。
ruby script/generate scaffold [model_name] [controller_name]
それでは、実行してみます。
とりあえず、helpでコマンドを確認する
$ ruby script/generate scaffold --help
Usage: script/generate scaffold ModelName [ControllerName] [action, ...]
Rails Info:
-v, --version Show the Rails version number and quit.
-h, --help Show this help message and quit.
General Options:
-p, --pretend Run but do not make any changes.
-f, --force Overwrite files that already exist.
-s, --skip Skip files that already exist.
-q, --quiet Suppress normal output.
-t, --backtrace Debugging: show backtrace on errors.
-c, --svn Modify files with subversion. (Note: svn must be in path)
・・・省略
とりあえず、以下のコマンドで生成されるようです。
ruby script/generate scaffold [model_name] [controller_name]
それでは、実行してみます。
$ ruby script/generate scaffold project mytask
exists app/controllers/
exists app/helpers/
exists app/views/mytask
exists app/views/layouts/
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
・・・省略
これでスケルトンが生成されました。本当に簡単ですね。
今回はMySQLでデータベースとテーブル作成
以下3つのデータベースを作成する
(ただ、_testはどのように使うかよくわからなかったので、_developmentと_productionだけ作りました)
■データベースを作成
■テーブルを作成、カテゴリ(プロジェクト)とタスク
タスクを纏めるカテゴリのようなもの(ここではプロジェクト)テーブルとタスクそのもののテーブルを作成する。
■railsアプリケーションの設定ファイル(DB設定と文字コート)を編集
mytask/config/database.yml を編集
mytask/config/environment.rbに文字コード追加
以下3つのデータベースを作成する
(ただ、_testはどのように使うかよくわからなかったので、_developmentと_productionだけ作りました)
■データベースを作成
- mytask_development
mytask_test- mytask_production
mysql> create database mytask_development;
mysql> create database mytask_production;
mysql> grant all on mytask_development.* to username@localhost identified by 'password';
mysql> grant all on mytask_production.* to username@localhost identified by 'password';
■テーブルを作成、カテゴリ(プロジェクト)とタスク
タスクを纏めるカテゴリのようなもの(ここではプロジェクト)テーブルとタスクそのもののテーブルを作成する。
create table projects (
id int unsigned auto_increment,
name varchar(128) not null,
content varchar(255),
task_count int default 0,
status enum('close','open') default 'close',
created_at timestamp,
updated_at timestamp,
limited_at timestamp,
primary key (id),
index status_idx (status)
);
create table tasks (
id int unsigned auto_increment,
project_id int unsigned not null,
name varchar(128) not null,
content text,
status enum('yet', 'exec', 'finish') default 'yet',
created_at timestamp,
updated_at timestamp,
limited_at timestamp,
primary key (id),
index project_id_idx (project_id),
index status_idx (status)
);
■railsアプリケーションの設定ファイル(DB設定と文字コート)を編集
mytask/config/database.yml を編集
development: adapter: mysql database: mytask_development username: username password: password socket: /var/lib/mysql/mysql.sock encoding: utf8
mytask/config/environment.rbに文字コード追加
#KCODE = 'u' # Be sure to restart your web server when you modify this file.
いよいよ、Railsでアプリケーション作成します。本に書いている通りにすすめていきます。
railsコマンドはアプリケーションに必要なスケルトンを生成してくれるようです。
以下に手順を説明します。
1) railsでアプリケーション作成
rails [アプリケーション名]でrailsアプリケーションを作成する
2) WEBrickで動作確認する
Webrick(ウェブリック)とはRubyで作成されたWebサーバでRails開発(development)では
編集したコードが自動でロードされるため開発効率がよいです。
http://localhost:3000/でアクセスするとRailsのWelcomeページが表示される
railsコマンドはアプリケーションに必要なスケルトンを生成してくれるようです。
以下に手順を説明します。
1) railsでアプリケーション作成
rails [アプリケーション名]でrailsアプリケーションを作成する
$ rails mytask
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
・・・省略
2) WEBrickで動作確認する
Webrick(ウェブリック)とはRubyで作成されたWebサーバでRails開発(development)では
編集したコードが自動でロードされるため開発効率がよいです。
$ cd mytask/ $ ruby script/server => Booting WEBrick... => Rails application started on http://0.0.0.0:3000ruby script/server でWEBrickを起動する
http://localhost:3000/でアクセスするとRailsのWelcomeページが表示される
かならずはまってしまうのが環境設定。1回設定すればOKですが、覚書として書いときます。
1) RubyとMySQLのバージョンを以下コマンドで確認できます
とりあえずレンタルサーバはFedora6でMySQLとRubyは既にインストール済み。以下コマンドで各々のバージョンを確認します。
Rubyのバージョンの確認方法
MySQLのバージョンの確認方法
ということで、まずはRailsのダウンロード&インストール
2) RubyGemsのダウンロード
RubyGemsはRubyのパッケージ管理ツールでRailsと関連ライブラリのインストールも簡単に行えるようになります。
というわけで、RubyForgeより「rubygems」をダウンロードする
3) RubyGemsのインストール
いよいよインストール。これが完了すればgemコマンドが使用できるようになります。
3) Railsのインストール
Gemsをインストール後、以下のgemコマンドでrailsをインストールする
こんな感じでOK!
1) RubyとMySQLのバージョンを以下コマンドで確認できます
とりあえずレンタルサーバはFedora6でMySQLとRubyは既にインストール済み。以下コマンドで各々のバージョンを確認します。
Rubyのバージョンの確認方法
$ ruby -v ruby 1.8.5 (2007-09-24 patchlevel 114) [i386-linux]
MySQLのバージョンの確認方法
$ mysql --version mysql Ver 14.12 Distrib 5.0.27, for redhat-linux-gnu (i686) using readline 5.0
ということで、まずはRailsのダウンロード&インストール
2) RubyGemsのダウンロード
RubyGemsはRubyのパッケージ管理ツールでRailsと関連ライブラリのインストールも簡単に行えるようになります。
というわけで、RubyForgeより「rubygems」をダウンロードする
3) RubyGemsのインストール
いよいよインストール。これが完了すればgemコマンドが使用できるようになります。
$ tar xvzf rubygems-0.9.4.tgz
$ ls
rubygems-0.9.4 rubygems-0.9.4.tgz
$ cd rubygems-0.9.4
$ ls
ChangeLog LICENSE.txt Rakefile TODO doc gemspecs pkgs redist setup.rb
GPL.txt README Releases bin examples lib post-install.rb scripts test
# su - root
# ruby setup.rb
3) Railsのインストール
Gemsをインストール後、以下のgemコマンドでrailsをインストールする
# gem install rails --include-dependencies $ rails -v Rails 1.2.4
こんな感じでOK!
次回こそ、Railsでアプリ作成に入ります。
Ruby on Railsはまだ試してみたことがないので、勉強のため、シンプルなタスク管理ツールをつくってみたいと思います。
私はタスク管理にCheck*Pad、SlimTimerなどを使っているのですが、どちらもとてもシンプルで使いやすいです。それらサービスを手本に、よりプロジェクト管理に適したツールに作成しようと思います。自分のタスクを洗い出すツールのため、名前はmyTaskにします。(後から変える可能性ありですが。。。)
簡単な機能紹介。
■ 機能一覧
とりあえずこれくらいでいいでしょう。
では次回からいよいよRailsを使ってみます。
私はタスク管理にCheck*Pad、SlimTimerなどを使っているのですが、どちらもとてもシンプルで使いやすいです。それらサービスを手本に、よりプロジェクト管理に適したツールに作成しようと思います。自分のタスクを洗い出すツールのため、名前はmyTaskにします。(後から変える可能性ありですが。。。)
簡単な機能紹介。
■ 機能一覧
- タスクを書き出せる(リストで見れる)
- タスクに期限を設定できる
- タスクには、未着手、実行中、完了等のステータスがある
- メールで期限がきたら教えてくれる
- カテゴリごとにタスクを纏められる
- タスクは共有できる
- 完了までにかかった時間を確認できる
とりあえずこれくらいでいいでしょう。
では次回からいよいよRailsを使ってみます。

