Upload
satomi-tsujita
View
598
Download
0
Embed Size (px)
DESCRIPTION
by Minami.rb
Citation preview
Rails3 初心者レッスンby Minami.rb
しきりなおしの
Lesson 3
2011年3月29日火曜日
このレッスンでやること一覧1. Railsで何をする?どうしてRails?2. Railsを通してデータベースをブラウザから扱う3. 作ってみよう事始め4. プロジェクトとテーブル5. Railsはどんなふうに働いてる?6. URLが大事7. 見た目をキレイに8. リレーションを考える9. 日本語対応10.プラグインを使う11.ちょっとRubyに働いてもらう12.herokuに公開しよう
2011年3月29日火曜日
Lesson2の復習使ったコマンド
$ rails generate controller コントローラ名 メソッド名$ rake routes
いじったファイル config/routes.rb app/view 以下いろいろ
リンクの貼り方 link_to / button_to / button_to_function
2011年3月29日火曜日
URLとリレーションURLの設定とDBの設定は別のもの
URL config/routes.rb http://host/(親)s/:(親)id/(子)s
DB設定 app/models/(親).rb has_many :(子)s
app/models/(子).rb belongs_to :(親A)
子
・・・
親子子
2011年3月29日火曜日
今回のリレーション
DB設定 app/models/A.rb has_many :Bs, :through => :ABs app/models/B.rb has_many :As, :through => :ABs app/models/AB.rb belongs_to :A belongs_to :B
AB(entry)
・・・(中間テーブル)
A(event)
AB(entry)
AB(entry)
B(member)
B(member)
B(member)
2011年3月29日火曜日
リレーションの設定 app/models/event.rb class event < ActiveRecord::Base has_many :entries has_many :members, :through => :entries app/models/member.rb #コチラもevent.rbと同様に
app/models/entry.rb class entry < ActiveRecord::Base belongs_to :event belongs_to :member
2011年3月29日火曜日
実装の順番は、CRUDがいいらしい。 Create, Read, Update, Delete (new+create, index/show, edit, delete)
リレーションを組み込む1
例:entriesでeventを表示する
events#showmember追加ボタン
entries#new
URL:events/:id URL:events/:event_id/entries/new
event
member
event
2011年3月29日火曜日
リレーションを組み込む1
app/controller/entries_controller.rb
def new @entry = Entry.new @event = Event.find(params[:event_id]) ・・・ end
def create @entry = Entry.new(params[:entry]) @entry.event_id = params[:event_id] ・・・ end
例: entriesでeventを表示する
app/views/entries/_form.html.erb
<%= form_for([@event, @entry]) do |f| %> ・・・ <div class="field"> <%= f.label :event %><br /> <%= @event.name %> <%= @event.date_on %> </div> ・・・<% end %>
2011年3月29日火曜日
memberを表示するためのmember_idを取ってこないといけない!
リレーションを組み込む2
例:entriesでmemberのセレクトボックスを作る
events#showmember追加ボタン
entries#new
URL:events/:id URL:events/:event_id/entries/new
event
member
event
2011年3月29日火曜日
app/views/entries/_form.html.erb
<%= form_for([@event, @entry]) do |f| %> ・・・ <div class="field"> <%= f.label :member_id %><br /> <%= f.select :member_id,
@members.map{|m| [m.name, m.id]} %> </div> ・・・<% end %>
[label, value]
リレーションを組み込む2
app/controller/entries_controller.rb
def new @entry = Entry.new @event = Events.find(params[:event_id]) @members = Member.all ・・・ end
def create @entry = Entry.new(params[:entry]) @entry.event_id = params[:event_id] @entry.member_id = params[:entry][:member_id] ・・・ end
例: entriesでmemberのセレクトボックスを作る
2011年3月29日火曜日
日本語にしてみるi18n で日本語化:viewでlabel指定されたところが日本語化される
validationのエラーメッセージで特に有効
①翻訳する日本語の元ネタを取ってくる http://github.com/svenfuchs/rails-i18n/raw/master/rails/locale/ja.yml②config/application.rb に ja を設定する # The default locale is :en ・・・ # config.i18n.load_path・・・ config.i18n.default_locale = :ja③config/locales/ja.yml に必要な日本語を追加する(例) activerecord: attributes: member: name: “名前”
(validation:Lesson4)
2011年3月29日火曜日
プラグインを使ってみようキビシイことを言うようですが、、、プラグインはたくさんあるので、これから自力でやっていけるように、READMEを自分で読んでみましょう。
devise:認証プラグイン https://github.com/plataformatec/devise
kaminari:ページネーションプラグイン https://github.com/amatsuda/kaminari
PDFKit:PDF出力プラグイン https://github.com/jdpace/PDFKit
2011年3月29日火曜日
modelにリレーションを設定してください。event#showから参加メンバーを登録(entry#new)できるようにしてください。event#showに参加メンバーが表示されるようにしてください。member#showに参加イベントが表示されるようにしてください。entry#newから直接event#showに画面を移動するようにしてください。 i18nで日本語対応させましょう。プラグイン:kaminariでページネーションしましょう。 プラグイン:deviseで認証ができるようにしましょう。deviseの認証画面をlogin/logoutボタンにリンクさせましょう。
演習
(次回勉強会でも扱います)2011年3月29日火曜日
Lesson3は、これで終わりです。お疲れさまでした。
2011年3月29日火曜日