Soumettre la recherche
Mettre en ligne
最近のRails事情 - 4.1!
•
11 j'aime
•
6,932 vues
Kenichi Tachibana
Suivre
2014/1/15 Hamamatus.rb #35 での発表に使ったスライドです。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 19
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Openstack chef-repo
Openstack chef-repo
Tomokazu Hirai
Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2
Sea Mountain
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Ken Sawada
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
Sea Mountain
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
Satoshi Ohkubo
Wardenで学ぶコンテナの基礎
Wardenで学ぶコンテナの基礎
Hiroaki_UKAJI
RubyGemsの落とし穴
RubyGemsの落とし穴
Kazuhiro Nishiyama
Recommandé
Openstack chef-repo
Openstack chef-repo
Tomokazu Hirai
Ruby on Rails3 Tutorial Chapter2
Ruby on Rails3 Tutorial Chapter2
Sea Mountain
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Ken Sawada
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
Sea Mountain
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
Satoshi Ohkubo
Wardenで学ぶコンテナの基礎
Wardenで学ぶコンテナの基礎
Hiroaki_UKAJI
RubyGemsの落とし穴
RubyGemsの落とし穴
Kazuhiro Nishiyama
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
Tsuyoshi Yamada
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!
ftnk
Niigata.pm #1
Niigata.pm #1
hayajo Imai
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Solaris Container
Solaris Container
Fumikazu FUJIWARA
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
Gosuke Miyashita
serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
Daisuke Ikeda
Apache Module
Apache Module
Tomohiro Ikebe
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
Rails application template
Rails application template
Yuto Ogi
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
Yoshinori Nakanishi
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Naoya Inada
Zabbixを2分でインストール
Zabbixを2分でインストール
真乙 九龍
Linux Server 冗長化~リアルタイム同期でラクラク運用~
Linux Server 冗長化~リアルタイム同期でラクラク運用~
miraitas
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
Itamae-Serverspec入門
Itamae-Serverspec入門
辰徳 斎藤
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
NDS#31
NDS#31
hayajo Imai
Hive undocumented feature
Hive undocumented feature
tamtam180
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
ngi group.
Contenu connexe
Tendances
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
Tsuyoshi Yamada
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!
ftnk
Niigata.pm #1
Niigata.pm #1
hayajo Imai
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Solaris Container
Solaris Container
Fumikazu FUJIWARA
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
Gosuke Miyashita
serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
Daisuke Ikeda
Apache Module
Apache Module
Tomohiro Ikebe
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
Rails application template
Rails application template
Yuto Ogi
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
Yoshinori Nakanishi
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Naoya Inada
Zabbixを2分でインストール
Zabbixを2分でインストール
真乙 九龍
Linux Server 冗長化~リアルタイム同期でラクラク運用~
Linux Server 冗長化~リアルタイム同期でラクラク運用~
miraitas
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
Itamae-Serverspec入門
Itamae-Serverspec入門
辰徳 斎藤
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
NDS#31
NDS#31
hayajo Imai
Hive undocumented feature
Hive undocumented feature
tamtam180
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
Tendances
(20)
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!
Niigata.pm #1
Niigata.pm #1
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
Solaris Container
Solaris Container
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
Apache Module
Apache Module
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
Rails application template
Rails application template
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Zabbixを2分でインストール
Zabbixを2分でインストール
Linux Server 冗長化~リアルタイム同期でラクラク運用~
Linux Server 冗長化~リアルタイム同期でラクラク運用~
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
Itamae-Serverspec入門
Itamae-Serverspec入門
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
NDS#31
NDS#31
Hive undocumented feature
Hive undocumented feature
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
Similaire à 最近のRails事情 - 4.1!
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
ngi group.
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
scala-kaigi1-sbt
scala-kaigi1-sbt
Kenji Yoshida
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
Ryo RKTM
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Sea Mountain
Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編
Yohei Yasukawa
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
Mina 20130417
Mina 20130417
Naotoshi Seo
Real world rails
Real world rails
Jun Yokoyama
Rails3.1rc4を試してみた
Rails3.1rc4を試してみた
Takahiro Hidaka
Railsの開発環境作るぞ
Railsの開発環境作るぞ
Yoichi Toyota
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
Rakuten Group, Inc.
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
Play勉強会 第3回
Play勉強会 第3回
Daisuke Kasuya
Scala2.8への移行
Scala2.8への移行
guest5f4320
Scala2.8への移行
Scala2.8への移行
Takeda Hiroyuki
Similaire à 最近のRails事情 - 4.1!
(20)
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
scala-kaigi1-sbt
scala-kaigi1-sbt
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Mina 20130417
Mina 20130417
Real world rails
Real world rails
Rails3.1rc4を試してみた
Rails3.1rc4を試してみた
Railsの開発環境作るぞ
Railsの開発環境作るぞ
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
Web技術勉強会 第31回
Web技術勉強会 第31回
Play勉強会 第3回
Play勉強会 第3回
Scala2.8への移行
Scala2.8への移行
Scala2.8への移行
Scala2.8への移行
Dernier
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Dernier
(9)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
最近のRails事情 - 4.1!
1.
最近のRails事情 - 4.1! author:
‘@ke_tachibana’ about: gem ‘rails’, ‘4.1.0.beta1’ generated_by: ‘slideshow(s9) gem (https://github.com/slideshow-s9/slideshow)’
2.
Preloader組み込みで色々高速起動 railsチーム謹製PreloaderであるSpringがデフォルトで組み込み rails系コマンドの起動の遅さを改善するプログラム 初期化処理の終わったプロセスをあらかじめ立ち上げておく仕組み
3.
対応するコマンド rails, rake, rspec,
cucumber, testunitあたり つまり、このへんが高速起動する(2回目から) rails console rails generate rake db:migrate rake routes rake db:seed rspec spec/models/foo.rb 実際1.5秒が0.3秒くらいになった
4.
注意点 railsとrake以外は別のgemに分離されている Gemfile: gem 'spring' #
これは元から書いてある gem 'spring-commands-rspec' # これを追加しよう
5.
使い方 $ spring binstub
rspec # ./binにrspecコマンドが出来る $ bin/rspec # bundle execとspringを通してrspecを実行する railsコマンドはbin/を付けなくても良い模様 rakeコマンドはプロジェクト生成時にbinstubされている模様 direnv (https://github.com/zimbatm/direnv) などを使えば、railsディレクトリに入っ た時だけ./binをPATHに追加したりできる
6.
秘密の設定値を格納するファイルが標準化 “config/secrets.yml” development: secret_key_base: 3b7cd727ee24e8444053437c36cc66c3 #=>
これはRails標準のキー my_api_key: FOOBAR # => 好きなのを追加できる production: my_api_key: <%= ENV['OTHER_API_KEY'] %> #=> これも出来る 取得: Rails.application.secrets.my_api_key # => 'FOOBAR' githubなどに入れることを考えると ダミーにしておく erb記法で環境変数からアクセスする いずれにしてもアプリケーション内での取得方法を統一できる
7.
Viewのバリエーションを自動切り替え samples_controller.rb: before_action do request.variant =
:tablet if request.user_agent =~ /iPad/ end 以下を自動選択: app/views/samples /index.html.erb /index.html+tablet.erb misc: index.html.erbは無いと駄目(当然) index.html+smartphone.erbとかは無くても良い(index.html.erbが使われる) 特定のvariantだけredirectとか、もっと細かい制御も可能(詳しくはWebで!)
8.
メールのプレビュー機能が組み込まれた #{Rails.root}/test/mailers/previews/notifier_preview.rb に (/test
!) class NotifierPreview < ActionMailer::Preview def welcome Notifier.welcome(User.first) end end を置いて
9.
http://localhost:3000/rails/mailers previewの一覧が!
10.
http://localhost:3000/rails/mailers/notifier/w previewにフォーマットの切り替えまで!(ビューが複数ある場合) paramsは使えないのでpreviewを動的に変える方法は無いかも
11.
ちなみに ダミーSMTPというアプローチも (Rails 4.1とは関係ないが) ダミーSMTPソフト SMTPを受け入れるが中継する代わりに自分で保持するサーバー。Webやメーラーなどで表示で きる。 MailCatcher
http://mailcatcher.me/ ($gem install mailcatcher で入るSinatraアプリケーション) FakeSMTP http://nilhcem.github.io/FakeSMTP/ (Java GUIアプリケーション) Mailtrap http://mailtrap.io/ (オンラインのサービス)
12.
ActiveRecordにenumフィールドが class Conversation <
ActiveRecord::Base enum status: [ :active, :archived ] end conversation.archived! # statusをarvhivedにする conversation.status = 'archived' # 同じくstatusをarchivedにする conversation.status = 'foo' # ArgumentError: 'foo' is not a valid status conversation.active? # => false statusがactiveかどうか conversation.status # => “archived” 文字列で返される conversation.status_before_type_cast # => 0 DBの生の値 Conversation::STATUS # => { "active" => 0, "archived" => 1 } Conversation.archived # => ActiveRecord::Relation statusがarchivedなものだけのscope
13.
misc DBのカラム型はinteger 複数の属性が同じ名前の項目を持つときは多分困る active, vote_activeなどとstatus名を分ける必要がある 定義はHashでも良い。むしろ明示した方が良い? class Conversation
< ActiveRecord::Base enum status: { active: 1, archived: 2 } end whereには数値で与える必要がある Conversation.where(status: 'active').to_sql # => 'SELECT "conversation".* FROM "conversation" WHERE "conversation"."status" = 0' # oh... Conversation.where(status: 1).to_sql # => 'SELECT "conversation".* FROM "conversation" WHERE "conversation"."status" = 1'
14.
属性名を指定するだけで”pretty”なURLが作れる class User <
ActiveRecord::Base to_param :name end index.erb: <% user = User.new(name: 'myname') %> <%= link_to 'Show User', user %> ↓ <a href="/users/1-myname">Show User</a> 先頭にidが付くので、String#to_iの仕様により User.find(params[:id]) はそのまま動く
15.
activerecord/lib/active_record/integration.rb: def to_param(method_name) define_method :to_param
do if (default = super()) && (result = send(method_name).to_s).present? "#{default}-#{result.truncate(20, separator: /s/, omission: nil).parameterize}" else default end end end 日本語は消える 20文字以上も消える
16.
User#to_paramを自分で実装しても良い class User <
AR::Base def to_param name end end Rails 4.1以前からあった仕様 上記の場合、controllerではUser.find_by!(name: params[:id])とする
17.
便利メソッド追加(ActiveSupport) マッチする文字を削除する String#remove 'My name
is FOO'.remove(/s/) # => 'MynameisFOO' Dateが属する週、月、四半期、年の範囲をRangeで day = Date.new(2014, day.all_week # => day.all_month # => day.all_quarter # => day.all_year # => 1, 15) Mon, 13 Wed, 01 Wed, 01 Wed, 01 Jan Jan Jan Jan 2014..Sun, 2014..Fri, 2014..Mon, 2014..Wed, 19 31 31 31 複数のキャッシュを一度にfetchするfetch_multi Rails.cache.write(:a, 1) Rails.cache.write(:b, 2) Rails.cache.fetch_multi(:a, :b) # => [1, 2] Jan Jan Mar Dec 2014 2014 2014 2014
18.
その他 Queue APIはまた入らなかった Module#concerningを省略した が、結構大事な気がする モデル内部をグループ化して名前を付ける機能 Product内部をSearchingとPurchasingとReviewingに分類したりする 時間をstubするテストヘルパ#travel, #travel_to
が入ったはずだが、RSpecでは使えな い? rake db:test:prepare タスクが消えたらしい テスト実行時に必ず暗黙的にDBをセットアップするようになったらしい 外部キーなど必須のレガシーDBではどうするかまだ調査中
19.
ありがとうございました
Télécharger maintenant