Skip to content

Instantly share code, notes, and snippets.

@maechabin
Created February 4, 2013 13:59
Show Gist options
  • Save maechabin/4706883 to your computer and use it in GitHub Desktop.
Save maechabin/4706883 to your computer and use it in GitHub Desktop.
新しいRailsプロジェクトを作る
$ rails new myapp
新しいGemをインストールする必要がない場合
※rails new my app --skip-bundle
myappの中に移動
$ cd myapp
サーバーを立ち上げる
$ rails server
=> Booting WEBrick
=> Rails 3.2.11 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-02-04 20:30:10] INFO WEBrick 1.3.1
[2013-02-04 20:30:10] INFO ruby 1.9.3 (2013-01-15) [x86_64-darwin12.2.1]
[2013-02-04 20:30:10] INFO WEBrick::HTTPServer#start: pid=66108 port=3000
 ※WEBricというWebサーバー、ポート番号3000
http://0.0.0.0:3000にアクセス
→Welcomeページが開けばOK
Control + CでWebサーバー停止、コマンドが入力できるようになる
scaffoldコマンド (Userに関するオブジェクトを作成)
$ rails generate scaffold User name:string intro:text
invoke active_record
create db/migrate/20130204113547_create_users.rb
create app/models/user.rb
invoke test_unit
create test/unit/user_test.rb
create test/fixtures/users.yml
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
create test/functional/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
create test/unit/helpers/users_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/users.js.coffee
invoke scss
create app/assets/stylesheets/users.css.scss
invoke scss
create app/assets/stylesheets/scaffolds.css.scss
→DB/migrate/20130204113547_create_users.rb マイグレーションファイル生成
マイグレーションファイルをDBに反映
$ rake db:migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0013s
== CreateUsers: migrated (0.0014s) ===========================================
URLの確認
$ rake routes
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
===ブログプロジェクト===
$ rails new blog
$ cd blog
JavaScript Runtime導入
$ vim Gemfile
→therubyracerのコメントをはずす
$bundle install
DBを初期化
$ rake db:create
サーバーを立ち上げて確認
$ rails server
Modelを作成 (Postオブジェクト作成)
$rails generate model Post title:string content:text
※$ rails g model Post title:string content:text
※generateは"g"でOK
※オブジェクト名 Modelは単数形、最初の文字は大文字 Post
→models/post.rbが生成される
DBに反映させる
$rake db:migrate
$ rails g controller Posts
※オブジェクト名 controllerは複数形 Posts
→controllers/posts_controller.rbとviews/postsが生成される
ルーティング cofing/routes.rbを編集
resources :postsと入力し、保存
※ :posts←Rubyでいうシンボル
$rake routes
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
※posts#index → postsでアクセスされたら、postsコントローラーの中のindexメソッドを実行しなさい
 posts#new → posts/newでアクセスされたら、postsコントローラーの中のnewメソッドを実行しなさい
===デバッグに使えるコンソールコマンド====
Railsのコマンドをインタラクティブに試せる オブジェクトの動作確認など
$ rails console
<例>
$ p = Post.new(:title => 'my first post', :content => 'hello!')
$ p.save
$ exit
DBに接続して、中身をみたり、操作したり
$ rails dbconsole
※$ dbでもOK
<例>
$ db
$ .table
$ select * from posts;
$ .exit
=====
コントローラーにメソッドを作る
※ rake routexより
PostsController
--- index - 一覧 -> app/views/posts/index.html.erb(enbetted ruby:埋め込まれたRuby)
          ※メソッドに対応したファイル名にする
--- create
--- new
--- edit
--- show
--- update
--- destroy
●PostsContrlloerを編集
class PostsController < ApplicationController
#メソッドを定義
def index
@posts = Post.all
end
end
※post.all postのオブジェクトから全部引っ張ってこい
※@posts ← @のついた変数:インスタンス変数 viewの中から呼び出せる
●view/postsの中にindex.html.erbファイルを作成
index.html.erbファイルを編集
<h1>Posts</h1>
<ul>
<% @posts.each do |post| %>
<li><%= post.title %></li>
<% end %>
</ul>
※ viewで使える記法
  コントローラー内で定義された@変数はそのまま使えます
  <% %>の中ではRubyの命令が使える
  <%= %>は表示させる命令(自動的にEscapeされる)
  <% # コメント %>
※リンクの表記
  <a href="/">home</a>
  →<%= link_to 'home', '/' %>
   <%= link_to 'アンカーテキスト', 'リンク先URL' %>
index.html.erbファイルを編集(リンクを追加)
<h1>Posts</h1>
<ul>
<% @posts.each do |post| %>
<li>
<%= link_to post.title, post_path(post) %>
<%= link_to 'edit', edit_post_path(post) %>
</li>
<% end %>
</ul>
<%= link_to 'home', posts_path %> | <%= link_to 'New', new_post_path %>
===大本のテンプレート===
/views/application.html.erb
<%= yiels %>の中に埋め込まれる
※デザインを変更する場合、/assets/の中のCSSを変更する
====
●画像を表示
<%= image_tag 'logo.png', :size => '200x40' %>
※<%= image_tag '画像ファイル名', :size => '幅x高さ' %>
リンクを設定する場合
<%= link_to image_tag('logo.png', :size => '200x40'), '/' %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment