14
Rails3 初心者レッスン by Minami.rb Lesson 3 第3版 Rails3.2

Rails初心者レッスン lesson3 3edition

Embed Size (px)

Citation preview

Page 1: Rails初心者レッスン lesson3 3edition

Rails3 初心者レッスンby Minami.rb

Lesson 3

第3版Rails3.2

Page 2: Rails初心者レッスン lesson3 3edition

このレッスンでやること一覧1. Railsで何をする?どうしてRails?2. 作ってみよう事始め3. プロジェクトとテーブル4. Railsの役割分担5. Railsのディレクトリ構成6. scaffold(デフォルト)でのURL7. リレーションを考える8. 日本語対応9. 見た目をキレイに10.プラグインを使う11.ちょっとRubyに働いてもらう12.herokuに公開しよう

Page 3: Rails初心者レッスン lesson3 3edition

Lesson2の復習

使ったコマンド $ rake routes $ rails generate model library

リレーションの設定

リンクの貼り方

Page 4: Rails初心者レッスン lesson3 3edition

日本語対応i18n で日本語化

例)_form.html.erbのlabel、各種エラーメッセージ など

(1) 日本語の元ネタを config/locales/ja.yml としてコピー https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale(2) config/application.rb に ja を設定 # config.i18n.load_path・・・ config.i18n.default_locale = :ja(3) config/locales/ja.yml に日本語を追加 例) activerecord: attributes: restaurant: name: “店名”

※インデントに注意!

Page 5: Rails初心者レッスン lesson3 3edition

見た目をきれいに(デザインのfix)

デザインの反映されるしくみ htmlの場所 => app/views/ scss(css)の場所 => app/assets/stylesheets/ coffeescript(javascript)の場所 => app/assets/javascripts/ imageファイルの場所 => app/assets/images

application.html.erb + (application.css, scaffold.css)

ex. index.html.erb + workshop.css.scss

<yieldエリア>

Page 6: Rails初心者レッスン lesson3 3edition

見た目をきれいに(デザインのfix)

(1) 全体のデザインをapplication.html.erb, application.cssに配置 application.html.erbをベースにする。 必要なものを誤って消してないか細かくブラウザでチェック

(2) imageファイル(gif, png, jpg)の呼び方 ファイルを app/assets/images/ の下に保存 *.html.erb の置きたいところに以下のように追加

例)<%= image_tag('line1.gif') %>

(3) <a></a>(aタグ)は、<% %>(erbタグ)でlink_toに書き換え※Railsがサポートしている機能は、変更しておくと後がラク

Page 7: Rails初心者レッスン lesson3 3edition

twitter bootstrapを使うtwitter bootstrap 本家

  http://twitter.github.com/bootstrap/

Railsで利用する場合の解説  http://railscasts.com/episodes/328-twitter-bootstrap-basics

gem ‘twitter-bootstrap-rails’ 本家  https://github.com/seyhunak/twitter-bootstrap-rails

Page 8: Rails初心者レッスン lesson3 3edition

twitter bootstrapの手順Gemfileを編集

group :assets do ・・・ gem 'twitter-bootstrap-rails' ・・・ end

gemのインストール $ bundle install

twitter bootstrap用 cssやjsのインストール $ rails generate bootstrap:install

Page 9: Rails初心者レッスン lesson3 3edition

twitter bootstrapを使うapp/views/layouts/application.html.erbの編集(1/2)

<body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <% link_to "Book shelf", books_path, class: "brand" %> <div class="nav-collapse"> <ul class="nav"> <li><%= link_to "Publisher", publishers_path %></li> </ul> </div> </div> </div> </div>

トップメニューまわり

Page 10: Rails初心者レッスン lesson3 3edition

twitter bootstrapを使うapp/views/layouts/application.html.erbの編集(2/2)

<div class="container"> <%= yield %> </div> </body>

これで一旦ブラウザにアクセスしてみようあとは、本家サイトにボタンやレイアウトの例が載っているので、自分好みのデザインに♪

メニュー下差し込みまわり

Page 11: Rails初心者レッスン lesson3 3edition

考えてみようi18nで日本語化しよう全体のデザインイメージを決めようtwitter bootstrapでデザインをカスタマイズしよう各ページのデザインや画面遷移が思い通りか、確認しよう

Page 12: Rails初心者レッスン lesson3 3edition

おまけnewやeditページから直接indexページへ移る方法

例)publishers#new -> create から publishers#indexへapp/controllers/publishers_controller.rb def create @publisher = Publisher.new(params[:publisher])

respond_to do |format| if @publisher.save format.html { redirect_to publishers_path } format.json { render json: @publisher, status: :created, ・・・ ・・・ end

Page 13: Rails初心者レッスン lesson3 3edition

おまけサイト入り口のwelcomeページを作成する場合

 (controller+viewだけ作る) $ rails generate controller コントローラ名 メソッド名 e.g. rails generate controller welcome index

public/index.html を削除

config/routes.rbを設定 root:to => “welcome#index”

Page 14: Rails初心者レッスン lesson3 3edition

Lesson3は、これで終わりです。お疲れさまでした。