Ruby on Rails/Âè11²óÊÙ¶¯²ñ - RESTful Rails Development?

[edit]

Ruby on RailsÊÙ¶¯²ñ°ìÍ÷

'Ruby on Rails' ¤Ë¤Ï¡¢²¼°ÌÁؤΥڡ¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£

[edit]

Âè11²óÊÙ¶¯²ñ¤Î¥Í¥¿

¥Í¥¿¤â¤È¤Ï²¼µ­¤Ç¤¹¡£

b-simple.de - Ruby on Rails, Entwicklung, Coaching und mehr!
http://www.b-simple.de/documents

[edit]

Æü»þ

[edit]

»²²Ã¼Ô

[edit]

Æ°²è

[edit]

RESTful Rails

[edit]

REST¤È¤Ï¤Ê¤Ë¤«?

P9
1.2 ¤Ê¤¼REST?

1.3 What's New

¤¢¤Ê¤¿¤Ï°ìÅÙREST¤òÍý²ò¤·¡¢¤½¤Îµ»½Ñ¤òÍøÍѤ¹¤ì¤Ð¡¢RESTful¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀ߷פϼ¡¤Îɸ½à¤È¤Ê¤ë¤À¤í¤¦¡£

1.4 Preparations
»ä¤¿¤Á¤Ï¡¢»ä¤¿¤Á¤ÎËÜRapidWeb? Development mit Ruby on Rails¤ÎÎã¤Ç¤¢¤ë¡¢¥×¥í¥¸¥§¥¯¥È´ÉÍý¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡ÖOntrack¡×¤Îʸ̮¤È°ì½ï¤ÎÃæ¤Ç¡¢Rails¤Î¿·¤·¤¤ÆÃÄê¤ÎÆÃħ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤­¤Þ¤¹¡£
»ä¤¿¤Á¤Ï´°Á´¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¤³¤³¤Ç¤Ï³«È¯¤·¤Ê¤¤¤À¤í¤¦¤¬¡¢REST¥³¥ó¥»¥×¥È¤Î¤¿¤á¤Îµ»½ÑŪ¤Ê´Ä¶­¤òºîÀ®¤¹¤ë¤¿¤á¤ËƱ¤¸µ»½Ñ¤òÍøÍѤ·¤Þ¤¹¡£
¤Þ¤º¡¢»ä¤¿¤Á¤ÎRails¥×¥í¥¸¥§¥¯¥È¤ÎÀ¸À®¤ò¤Ï¤¸¤á¤Þ¤·¤ç¤¦

> rails ontrack

²¼µ­¤Î¤è¤¦¤Ëdevelopment¤Ètest¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤·¤Þ¤¹

> mysql -u rails
Enter password:
mysql> create
mysql> create
mysql> quit

1.4.1 Rails 1.2
»ä¤¿¤Á¤Ï¡¢¤¹¤Ù¤Æ¤ÎÆɼԤ¬Rails1.2¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤¤È¤ª¤â¤Ã¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£¤½¤³¤Ç»ä¤¿¤Á¤Ï¡¢»ä¤¿¤Á¤Îontrack¤ÎÎã¤Î¤ß¤¬¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò¤Ä¤«¤¦¤è¤¦¤Ë¡¢¥×¥í¥¸¥§¥¯¥È¥Ù¡¼¥¹¤Î1.2¤ÎRails¥¤¥ó¤¹¤È¥ì¡¼¥·¥ç¥ó¤ò¤¹¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤¹¤ë¡£
¥É¥­¥å¥á¥ó¥È¤Ë¤½¤Ã¤ÆRails1.2¤Î¥¿¥°¤Ïrel_1-2-1¤È̾¤Å¤±¤é¤ì¤ë¡£

 > cd ontrack
 > rake rails:freeze:edge TAG=rel_1-2-1

Ê̤ÎRails¤Î¤è¤ê¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ðÊó¤Ïrails¤ÎWeb¥µ¥¤¥È¡¢http://www.rubyonrails.org¤Ç¸«¤Ä¤«¤ë¡£

1.5 Resource Scaffolding
REST»Ø¸þ¤ÎRails³«È¯¤Ï¡¢¿·¤·¤¤scaffold¥¸¥§¥Í¥ì¡¼¥¿¤Ç¤¢¤ëscaffold resource¤«¤éºîÀ®¤µ¤ì¤ë¡¢¥ê¥½¡¼¥¹¡ÖProject¡×¤È¤È¤â¤Ë´Êñ¤ËÉÁ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£
¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡¢¥ê¥½¡¼¥¹Ì¾¤Ç¤¢¤ë¡Öproject¡×¤È¤¤¤¦¥Ñ¥é¥á¡¼¥¿¤È¥ª¥×¥·¥ç¥Ê¥ë¤Ê¥â¥Ç¥ë¤Î°À­¤Î¥ê¥¹¥È¤È¡¢¤½¤ì¤é¤Î¥¿¥¤¥×¤òÍ¿¤¨¤é¤ì¤ë
¤³¤ì¤é¤Î°À­¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Þ¥¤¥°¥ì¡¼¥·¥ç¥ó¥¹¥¯¥ê¥×¥È¤È¡¢ºîÀ®¤µ¤ì¤ë¥Ó¥å¡¼¤Îappropriate¥Õ¥£¡¼¥ë¥É¤â¤Þ¤¿É¬ÍפȤµ¤ì¤ë¡£

ruby script/generate scaffold_resource project name:string desc:text
exists app/controllers/
exists app/helpers/
create app/views/projects
exists test/functional/
exists test/unit/
create app/views/projects/index.rhtml
create app/views/projects/show.rhtml
create app/views/projects/new.rhtml
create app/views/projects/edit.rhtml
create app/views/layouts/projects.rhtml
create public/stylesheets/scaffold.
create app/models/project.rb
create app/controllers/projects_controller.
create test/functional/projects_controller_
create app/helpers/projects_helper.
create test/unit/project_test.rb
create test/fixtures/projects.yml
create db/migrate
create db/migrate/001_create_projects.
route map.resources :projects

¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥â¥Ç¥ë¤À¤±¤Ç¤Ê¤¯¡¢¥³¥ó¥È¥í¡¼¥é¡¢¥Ó¥å¡¼¤½¤·¤Æ¡¢µ¡Ç½Åª¤Ê¥Þ¥¤¥°¥ì¡¼¥·¥ç¥ó¥¹¥¯¥ê¥×¥È¤È¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¥¨¥ó¥È¥ê¡¡map.resources :projects ¤òconfig/routes.rb¤ÎÃæ¤Ë¡¢À¸À®¤·¤¿¡£

¤½¤ì¤Ï¡¢»ä¤¿¤Á¤Î¥³¥ó¥È¥í¡¼¥é¡¼¤¬Resultful¤ÊURL¤ËÂФ·¤Æ±þÅú¤Ç¤­¤ë¤è¤¦¤Ê¥Þ¥Ã¥Ô¥ó¥°¤Î¥¨¥ó¥È¥ê¡¼¤À¡£

1.6 The Model

»ä¤¿¤Á¤ÏºÇ½é¤Ë¸À¤Ã¤¿¤è¤¦¤Ë¡¢REST¤Î¥ê¥½¡¼¥¹¤Ï¡¢¥³¥ó¥È¥í¡¼¥é¤È¥â¥Ç¥ë¤Î¥³¥ó¥Ó¥Í¡¼¥·¥ç¥ó¤Îʸ̮¤Ç¤¢¤ë¡£
¥â¥Ç¥ë¤Ï¡¢Ä̾ï¤ÎActiveRecord?::Base:¤ò·Ñ¾µ¤·¤¿ActiveRecord?¥¯¥é¥¹¤À¡£

 class Project < ActiveRecord::Base
 end

¤Ê¤Î¤Ç¡¢¤â¤Ç¤ë¤Î¾ì¹ç¤Ï¡¢¤Ê¤Ë¤â¿·¤·¤¤¤³¤È¤ò³Ø¤Ö¤³¤È¤Ï¤Ê¤¤¡£
¤·¤«¤·¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Æ¡¼¥Ö¥ë¤òºî¤ë¤Î¤Ï˺¤ì¤Ê¤¤¤è¤¦¤Ë¡£

 > rake db:migrate

1.7 The Controller

À¸À®¤µ¤ì¤¿ProjectsController?¤Ï¡¢Project¥ê¥½¡¼¥¹¤òÁàºî¤¹¤ë¤¹¤ë¡¢CRUD-Controller¤À¡£
¤³¤ì¤Ï¡¢¥³¥ó¥È¥í¡¼¥é¤ÏÀµ³Î¤Ë°ì¤Ä¤Î¥ê¥½¡¼¥¹¥¿¥¤¥×¤Ë°¤·¡¢»Í¤Ä¤ÎCRUD¤ÎÁàºî¤½¤ì¤¾¤ì¤ÎÀ߷פµ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤òoffer¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£

class ProjectsController < ApplicationController
  # GET /projects
  # GET /projects.xml
  def index...
  # GET /projects/1
  # GET /projects/1.xml
  def show...
  # GET /projects/new
  def new...
  # GET /projects/1;edit
  def edit...
  # POST /projects
  # POST /projects.xml
  def create...
  # PUT /projects/1
  # PUT /projects/1.xml
  def update...
  end
  # DELETE /projects/1
  # DELETE /projects/1.xml
  def destroy...
  end
end

¤â¤·¡¢¤¢¤Ê¤¿¤¬À¸À®¤µ¤ì¤¿¥³¥ó¥È¥í¡¼¥é¤ò¤ß¤ë¤Ê¤é¡¢¿·¤·¤¤¥¹¥¿¥Ã¥Õ¤ò¤½¤³¤Ë¤Ï¤ß¤Ä¤±¤Ê¤¤¤À¤í¤¦¡£¤¹¤Ê¤ï¤Á¡¢¥×¥í¥¸¥§¥¯¥È¤òÀ¸À®¡¢¸¡º÷¡¢¹¹¿·¤¹¤ë¤¿¤á¤Î¥¢¥¯¥·¥ç¥ó¤¬¤¢¤ë¡£¥³¥ó¥È¥í¡¼¥é¤È¥¢¥¯¥·¥ç¥ó¤ÎξÊý¤Ï¡¢ºÇ½é¤Î¥°¥ì¡¼¥¹¤ÇÉáÄ̤˸½¤ì¤ë
¤·¤«¤·¡¢¤½¤ì¤é¤Ï¡¢HTTP Æ°»ì(?)¤Ë¤è¤Ã¤Æ´Þ¤Þ¤ì¤ë¥ê¥¯¥¨¥¹¥ÈURL¤Î´ØÏ¢¤òɽ¼¨¤¹¤ë¡¢À¸À®¤µ¤ì¤¿¥³¥á¥ó¥È¤ò¤â¤Ã¤Æ¤¤¤ë
¤½¤³¤Ë¤ÏREST-URL¤¬¤¢¤ê¡¢Ìʺݤ¿¤Á¤Ï¼¡¤Î¥»¥¯¥·¥ç¥ó¤Ç¾Ü¤·¤¯¸«¤Æ¤¤¤¯¡£

1.7.1 REST-URLs

1.7.2 REST actions are using respond to

1.7.3 Accept-Field of the HTTP-Header

1.7.4 Format specification via the URL

1.8 REST-URLs and Views

1.8.1 New and Edit

1.8.2 Path-Methods in forms: Create and Update

The New Form

The Edit Form

tag: Ruby on Rails?, ÊÙ¶¯²ñ?


¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é