Posts Tagged ‘Ruby on Rails’

restful_authentication使うぜ!

木曜日, 8月 21st, 2008

って、今日も寝坊して、触れず、、、

一応作業手順概要をまとめた。

明日こそ、、、

restful_authenticationの導入
——————————————————-
1.DBの作成
2.railsプロジェクトの作成
3. restful_authentication プラグインのインストール

$ ./script/plugin discover
$ ./script/plugin install restful_authentication

#plugin descoverってなんじゃ?
 →後で調べる

4. ジェネレータコマンド「authenticated」 が追加されるので、実行
activationもstateful も入れる

$ ./script/generate authenticated user sessions –include-activation –stateful

こんな感じ。

5. acts_as_state_machine プラグインもインストール
activationとかstatefulとかに必要らしい。

$ ./script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/

6.migrate!(マイグレーション用ファイルは、上記のジェネレート時に設定済み)
7. AuthenticationSystemの組み込み
app/controller/application.rb

class ApplicationController < ActionController::Base
の下に

include AuthenticatedSystem # 追記
before_filter :login_from_cookie # 追記

とかを追記

8. routes.rb の編集
activateするために必要らしい。

map.connect “activate/:activation_code”, :controller => “users”, :action => “activate”
——————————————————-

■参考情報
authenticatedジェネレートのオプション

user
モデル名。同じ名前で登録関係のコントローラも作成される。以前のデフォルトでは、userモデルと登録のためのaccountコントローラだったけど、今回は両方とも同じ名前で作られる

sessions
ログインログアウト用コントローラ名。ログイン情報自体を一つのリソースとしてみなしているんだね。面白い。

–include-activation
メール認証を行うかどうか。最初の登録は仮登録で、届いたメールに書かれてるアドレスにアクセスすると登録が完了するってやつだね。以前は公式でやり方は 紹介されていたけど、自分で実装する必要があった部分。でもobserver使うやり方は好きじゃないので、うちでは使ってなかった

–stateful
プラグインacts_as_state_machineを使ってユーザの状態管理をする。仮登録状態とか、正会員とか、退会とかね。そんな状態をいくつか 定義しておいて、状態Aから状態Bに変わった時にはCという処理を行う、といったことをacts_as_state_machineを使うことで簡潔に書 くことができる。利用には別途acts_as_state_machineのインストールが必要

Tags:
Posted in Programing | No Comments »

Railsでユーザ認証

水曜日, 8月 20th, 2008

Railsでユーザ認証を今日朝したかったけど、寝坊してできなかった。。。

ってことで、情報まとめ編。
明日作ります。

SHOWZINE ≫ restful_authenticationによるユーザ認証を実装

ユーザ認証用のプラグインの導入とテーブルの生成 – Okiraku Programming

ユーザ認証用のプラグインの導入とテーブルの生成 – Okiraku Programming

restful_authentication を題材にして routes, resource and resources のお勉強 – noplans_rubyの日記

restful_authenticationを触ってみた – idesaku blog

ZDNet Japan Blog – あとで読むRailsのススメ:restful_authentication

Tags:
Posted in Programing | No Comments »

Railsってば

火曜日, 8月 19th, 2008

うお!、昨日のエントリー見直していて、初めて気がついた。

C:\Documents and Settings\Miyai>rails -v
Rails 2.1.0

2.1になっとる!

リリースされていたのは聞いていたけど、gemでもう2.1が入るのかぁ。

Tags:
Posted in 徒然 | No Comments »

Rails2.0でscaffoldする。

火曜日, 8月 19th, 2008

Rails2.0の壁にぶち当たった昨日の続き。

昨日の「こうすりゃいんじゃね?」まとめ。
——————————————————-
1.db内にデータベース作成する。
2.初期ウィザードで、Mysql指定(これでdatabase.ymlも自動生成)
3.scaffold生成
4.mygrationファイル修正
5.mygrate
6.実行!
——————————————————-

で、今日やってみました。
おおむねOK

忘れないうちに備忘録
——————————————————-
■1.db内にデータベース作成する。

C:\Documents and Settings\Miyai>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51b-community-nt MySQL Community Edition (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> drop database rubyweblog_development;
Query OK, 2 rows affected (0.64 sec)

mysql> create database rubyweblog_development;
Query OK, 1 row affected (0.03 sec)

mysql> quit;
Bye

昨日のゴミDBを消して、作っただけ。

■2.初期ウィザードで、Mysql指定(これでdatabase.ymlも自動生成)

NetBeansのプロジェクト作成ウィザードで指定しただけ。(簡単!)

■3.scaffold生成

プロジェクト名を右クリック→「生成」を選択

生成で「scaffold」を選択
名前で「Post title:string」を入力
「了解」ボタンを選択

■4.mygrationファイル修正

修正不要。勝手にgenerateしてくれています。

■5.mygrate

プロジェクト名を右クリック>データベースマイグレーション>現在のバージョン

■6.実行!
失敗!

#良く考えたら、構成とかの編集忘れてました。

■7.構成の編集
<appフォルダ>\config\routes.rb の編集
# map.root :controller => “welcome”

map.root :controller => “posts”

※ここで指定するコントローラ名は複数系。これで軽くはまりました。

■8.デフォルトindexファイル削除
<appフォルダ>\public\index.html を削除

■9.再実行
OK!
——————————————————-

ってか、1.2系より、よっぽど簡単。これは2.0で開発進めるべきか。。。
#自動生成されているソースもわかりやすくなっている。マイグレーションファイル名が、タイムスタンプになってたりとか
#20080818225201_create_posts.rb

Tags: , ,
Posted in Programing | No Comments »

NetBeans チュートリアル進まず(おそらくrails1.2系とrails2.0系の違い)

月曜日, 8月 18th, 2008

Databaseは作成できたが、チュートリアルどおり進まない。

NoMethodError in BlogController#index

undefined method `title’ for BlogController:Class

RAILS_ROOT: C:/Documents and Settings/Miyai/My Documents/NetBeansProjects/rubyweblog
Application Trace | Framework Trace | Full Trace

app/controllers/blog_controller.rb:2

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:215:in `load_without_new_constant_marking’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:215:in `load_file’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:214:in `load_file’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:95:in `require_or_load’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:260:in `load_missing_constant’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:467:in `const_missing’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:479:in `const_missing’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/inflector.rb:283:in `constantize’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/core_ext/string/inflections.rb:143:in `constantize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/routing/route_set.rb:386:in `recognize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:148:in `handle_request’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:107:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `synchronize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:35:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:112:in `handle_dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:78:in `service’
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service’
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run’
C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread’
C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread’
C:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each’
C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:62:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/servers/webrick.rb:66
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’
script/server:3

app/controllers/blog_controller.rb:2
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:215:in `load_without_new_constant_marking’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:215:in `load_file’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:214:in `load_file’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:95:in `require_or_load’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:260:in `load_missing_constant’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:467:in `const_missing’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:479:in `const_missing’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/inflector.rb:283:in `constantize’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/core_ext/string/inflections.rb:143:in `constantize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/routing/route_set.rb:386:in `recognize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:148:in `handle_request’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:107:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `synchronize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:35:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:112:in `handle_dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:78:in `service’
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service’
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run’
C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread’
C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread’
C:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each’
C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start’
C:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:62:in `dispatch’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/servers/webrick.rb:66
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in’
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require’
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’
script/server:3

Request

Parameters:

None

Show session dump


flash: !map:ActionController::Flash::FlashHash {}

Response

Headers:

{“cookie”=>[],
“Cache-Control”=>”no-cache”}

おそらく、rails1.2系と、rails2.0系のscaffoldに違いによるエラー

教えて! Watch Ruby on Rails について

——————————————————-
1.railsコマンドでひな形を作成
※rails2.0ではデフォルトのDBがSQLite3なので、mysqlで使う場合は”-d mysql”オプションが必要かもです。
2.database.ymlを修正
3.おもむろにscaffold実行
ruby script/generate scaffold pepole name:string age:integer
4.dbにデータベースを作る
5.mygrateする
rake db:migrate
6.serverをスタートする
——————————————————-

NetBeansのチュートリアル手順を改造するとこんな感じか
——————————————————-
1.db内にデータベース作成する。
2.初期ウィザードで、Mysql指定(これでdatabase.ymlも自動生成)
3.scaffold生成
4.mygrationファイル修正
5.mygrate
6.実行!
——————————————————-

明日やってみる。

■他、参考サイト
Ruby on Rails 2.0以降 scaffoldの違い – 『どこでもドア的』プロジェクト

Tags:
Posted in Cocoya.net, Programing | No Comments »

NotePC NetBeans開発環境

月曜日, 8月 18th, 2008

NotePCに Ruby on Rails のNetBeans開発環境を構築する。

■ruby インストール
・One-Click Ruby
ruby186-26.exe

システム環境変数の”path”にrubyのpathを追加
;C:\ruby\bin

■MySQL
mysql-essential-5.0.51b-win32.msi

・default character を utf8 に変更
・Include Bin Directory in Windows PATHにチェックオン

■Rails
gemsでインストール

> gem install rails

c:\ruby>gem install rails
Bulk updating Gem source index for: http://gems.rubyforge.org
Install required dependency rake? [Yn] Y
Install required dependency activesupport? [Yn] Y
Install required dependency activerecord? [Yn] Y
Install required dependency actionpack? [Yn] Y
Install required dependency actionmailer? [Yn] Y
Install required dependency activeresource? [Yn] Y
Successfully installed rails-2.1.0
Successfully installed rake-0.8.1
Successfully installed activesupport-2.1.0
Successfully installed activerecord-2.1.0
Successfully installed actionpack-2.1.0
Successfully installed actionmailer-2.1.0
Successfully installed activeresource-2.1.0
Installing ri documentation for rake-0.8.1…
Installing ri documentation for activesupport-2.1.0…
Installing ri documentation for activerecord-2.1.0…
Installing ri documentation for actionpack-2.1.0…
Installing ri documentation for actionmailer-2.1.0…
Installing ri documentation for activeresource-2.1.0…
Installing RDoc documentation for rake-0.8.1…
Installing RDoc documentation for activesupport-2.1.0…
Installing RDoc documentation for activerecord-2.1.0…
Installing RDoc documentation for actionpack-2.1.0…
Installing RDoc documentation for actionmailer-2.1.0…
Installing RDoc documentation for activeresource-2.1.0…

c:\ruby>gem install rails
Successfully installed rails-2.1.0

#インストール許可を省略する際には”-y”オプション
> gem install rails -y

#1.2系をインストールする場合は以下参照
> gem install rails –version=”1.2.6″ -y

■プログラムインストール結果
C:\Documents and Settings\Miyai>mysql –version
mysql Ver 14.12 Distrib 5.0.51b, for Win32 (ia32)

C:\Documents and Settings\Miyai>rails -v
Rails 2.1.0

C:\Documents and Settings\Miyai>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

■NetBeansインストール
JDKが必要
Java SE Downloads

NetBeans 日本語サイト
ja: NetBeans 日本語サイト
netbeans-6.1-ml-ruby-windows.exe
※mlはマルチランゲージの事。日本語版を含みます。

■チュートリアル
Ruby のブログを 10 分で作成 – NetBeans IDE 6.0 チュートリアル

Tags: , , ,
Posted in PC・Server設定 | No Comments »

Get Adobe Flash playerPlugin by wpburn.com wordpress themes