Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
株式会社アジャイルウェア
代表取締役CEO 川端 光義
agilekawabata
Try Rails4.0
Ruby関西
$ curl -L https://get.rvm.io | bash -s stable
Ruby Install
Macのターミナルを立ち上げ
1. RVMのインストール
2. Rubyのインストール
$ rvm install 2.0.0...
$ rvm gemset create rtunes
$ rvm gemset use rtunes
$ gem i rails --no-ri --no-rdoc
$ gem list
Rails Install
1. rTunesプロジェクト作成
2. 楽曲を管理する
3. ジャンル別に管理する
4. 音楽を再生する
rTunes
$ rails new rtunes
$ cd rtunes
$ rails s
rTunesプロジェクト作成
http://localhost:3000/
ブラウザで確認
楽曲を管理する
MusicのScaffold
名前の必須
日本語化
$ rails g scaffold music name:string artist:string
$ rake db:migrate
validates :name, :p...
ジャンル別に管理する
GenreのScaffold
音楽にジャンルの追加
$ rails g scaffold genre name:string
$ rake db:migrate
$ rails g migration add_genre_...
ジャンル別に管理する (2)
ジャンルのSelectBox
音楽リストにジャンルを表示
<div class="field">
<%= f.label :genre %><br>
<%= f.select :genre_id, Genre.all...
ジャンル別に管理する (2)
ジャンルのSelectBox
音楽リストにジャンルを表示
<div class="field">
<%= f.label :genre %><br>
<%= f.select :genre_id, Genre.all...
音楽を再生する
音楽コントロール
routesに追加
<td><audio src="<%= data_music_path(music) %>"
controls /></td>
resources :musics do
member do
...
音楽を再生する (2)
音楽にファイル名の追加
ファイルアップロード
$ rails g migration add_filename_to_musics filename:string
$ rake db:migrate
<%= form_for...
音楽を再生する (3)
ファイルアップロード
def update
file = params[:file]
File.open(Rails.root.join('public', file.original_filename), 'wb') do |...
Q&A Time
Upcoming SlideShare
Loading in …5
×

Try Rails4

2,548 views

Published on

初めてのRails4プログラミング。
Ruby/Railsのインストールからscaffold、モデルの関連、ファイルアップロードができます。
JAWS FESTA2013のハンズオンで使った資料です。

Published in: Technology, Education
  • Be the first to comment

Try Rails4

  1. 1. 株式会社アジャイルウェア 代表取締役CEO 川端 光義 agilekawabata Try Rails4.0 Ruby関西
  2. 2. $ curl -L https://get.rvm.io | bash -s stable Ruby Install Macのターミナルを立ち上げ 1. RVMのインストール 2. Rubyのインストール $ rvm install 2.0.0 $ rvm use 2.0.0 --default
  3. 3. $ rvm gemset create rtunes $ rvm gemset use rtunes $ gem i rails --no-ri --no-rdoc $ gem list Rails Install
  4. 4. 1. rTunesプロジェクト作成 2. 楽曲を管理する 3. ジャンル別に管理する 4. 音楽を再生する rTunes
  5. 5. $ rails new rtunes $ cd rtunes $ rails s rTunesプロジェクト作成 http://localhost:3000/ ブラウザで確認
  6. 6. 楽曲を管理する 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/
  7. 7. ジャンル別に管理する 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
  8. 8. ジャンル別に管理する (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>
  9. 9. ジャンル別に管理する (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>
  10. 10. 音楽を再生する 音楽コントロール 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
  11. 11. 音楽を再生する (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>
  12. 12. 音楽を再生する (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 .... 音楽リスト画面で再生!
  13. 13. Q&A Time

×