Try Rails4

13
株式会社アジャイルウェア 代表取締役CEO 川端 光義 agilekawabata Try Rails4.0 Ruby関西

Transcript of Try Rails4

Page 1: Try Rails4

株式会社アジャイルウェア代表取締役CEO 川端 光義

agilekawabata

Try Rails4.0

Ruby関西

Page 2: Try Rails4

$ \curl -L https://get.rvm.io | bash -s stable

Ruby InstallMacのターミナルを立ち上げ1. RVMのインストール

2. Rubyのインストール

$ rvm install 2.0.0$ rvm use 2.0.0 --default

Page 3: Try Rails4

$ rvm gemset create rtunes$ rvm gemset use rtunes$ gem i rails --no-ri --no-rdoc$ gem list

Rails Install

Page 4: Try Rails4

1. rTunesプロジェクト作成2. 楽曲を管理する3. ジャンル別に管理する4. 音楽を再生する

rTunes

Page 5: Try Rails4

$ rails new rtunes$ cd rtunes$ rails s

rTunesプロジェクト作成

http://localhost:3000/ブラウザで確認

Page 6: Try Rails4

楽曲を管理する

MusicのScaffold

名前の必須

日本語化

$ rails g scaffold music name:string artist:string$ rake db:migrate

validates :name, :presence => true

gem 'i18n_generators'$ bundle$ rails g i18n ja

>> Gemfile

>> 今 ja.ymlが取れない

$ wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/

Page 7: Try Rails4

ジャンル別に管理する

GenreのScaffold

音楽にジャンルの追加

$ rails g scaffold genre name:string$ rake db:migrate

$ rails g migration add_genre_id_to_musics genre_id:integer$ rake db:migrate

belongs_to :genre >> music.rb

def music_params params.require(:music).permit(:name, :artist, :genre_id) end

>> musics_controller.rb

Page 8: Try Rails4

ジャンル別に管理する (2)

ジャンルのSelectBox

音楽リストにジャンルを表示

<div class="field"> <%= f.label :genre %><br> <%= f.select :genre_id, Genre.all.collect {|genre| [genre.name, genre.id]} %> </div>

<td><%= music.genre.name %></td>

Page 9: Try Rails4

ジャンル別に管理する (2)

ジャンルのSelectBox

音楽リストにジャンルを表示

<div class="field"> <%= f.label :genre %><br> <%= f.select :genre_id, Genre.all.collect {|genre| [genre.name, genre.id]} %> </div>

<td><%= music.genre.name %></td>

Page 10: Try Rails4

音楽を再生する音楽コントロール

routesに追加

<td><audio src="<%= data_music_path(music) %>" controls /></td>

resources :musics do member do get 'data' end end

def data @music = Music.find(params[:id]) send_data(Rails.root.join('public', @music.filename).read) end

Page 11: Try Rails4

音楽を再生する (2)音楽にファイル名の追加

ファイルアップロード

$ rails g migration add_filename_to_musics filename:string$ rake db:migrate

<%= form_for(@music, :html => {:multipart => true}) do |f| %>...... <div class="field"> <%= f.label :file %><br> <%= file_field_tag :file %> </div>

Page 12: Try Rails4

音楽を再生する (3)ファイルアップロード

def update file = params[:file] File.open(Rails.root.join('public', file.original_filename), 'wb') do |f| f.write(file.read) end @music.filename = file.original_filename ....

音楽リスト画面で再生!

Page 13: Try Rails4

Q&A Time