Ruby on Railså ¥éïŒã€ã³ã¹ããŒã«ããŠäœ¿ã£ãŠã¿ããïŒ
Ruby on Railsã䜿ããšãWebãµã€ããWebããŒã¹ã®æ¥åã·ã¹ãã ãå¹çè¯ãéçºã§ããããã«ãªãããšèšãããŠããŸããRuby on Railsã®éçºç°å¢ã®å°å ¥æé ãRuby on Railsã§ã§ããããšïŒparamsãbundlerãimage_tagãmysqlãmodelãseedãcontrollerïŒã解説ããŸããä»åã¯ãRubyã®ãã¬ãŒã ã¯ãŒã¯ã§ãã Ruby on Rails ã®ã€ã³ã¹ããŒã«æé ã説æããŸãã
Ruby on Railsã«å«ãŸããŠãã幟ã€ãã®æ©èœã玹ä»ããRuby on Railsã§äœãã§ããã®ãããããããã解説ããŠãããŸãã
Ruby on Rails ã€ã³ã¹ããŒã«

æ¬èšäºã§ã¯ãRubyã®ãã¬ãŒã ã¯ãŒã¯ã§ããRuby on RailsãWindowsã«ã€ã³ã¹ããŒã«ããæ¹æ³ã玹ä»ããŠãããŸãããã§ã«RubyãWindowsã«ã€ã³ã¹ããŒã«ãããŠãããšããåæã§è©±ãé²ããŠãããŸãã®ã§ããããŸã Rubyãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ããWindowsã®PCã«Rubyãã€ã³ã¹ããŒã«ããæ¹æ³ããåç §ããŠãã ããã
ã§ã¯ãæ©éRuby on Railsãã€ã³ã¹ããŒã«ããŸãããïŒ
ã€ã³ã¹ããŒã«
ãŸããRuby on Railsã®å ¬åŒãµã€ãã®å 容ã確èªããŸããããRuby on Railsã®å ¬åŒãµã€ãã¯ä»¥äžãšãªããŸãã
è±èªçãšãªããŸãããäžéšã®ã¡ãã¥ãŒãGuidesããããææ°ããŒãžã§ã³ãšã¬ã€ããåç
§ã§ããŸãã
ã§ã¯ãRuby on Railsã®ã€ã³ã¹ããŒã«ã宿œããŠãããŸãããã
æé ïŒïŒã³ãã³ãããã³ãããèµ·åããŸãã
æé ïŒïŒãgem install railsããšå ¥åããŠå®è¡ããRuby on Railsãã€ã³ã¹ããŒã«ããŸãã
æé ïŒïŒãrails -vããšå ¥åããŠå®è¡ããRuby on Railsã®ããŒãžã§ã³ã確èªããŸããïŒ2019幎2æ24æ¥æç¹ã§ã¯ãããŒãžã§ã³5.2.2ãïŒ
Ruby on Railsã®ããŒãžã§ã³ã確èªã§ãããç¡äºã«ã€ã³ã¹ããŒã«å®äºã§ããç¹ã«é£ããèšå®ã¯ãããŸããããã€ãŸãããŠããŸã£ãå Žåã¯ããŠã³ããŒããããšããããããçŽããšè¯ãã§ãããã
SQLite3ã©ã€ãã©ãªãã€ã³ã¹ããŒã«
Ruby on Railsã¯ããã©ã«ãã®ããŒã¿ããŒã¹ãSQLiteã§ããSQLiteãå©çšãããããSQLite3ã®ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããSQLite3ã®å®è¡ãã¡ã€ã«ãšDLLãããŠã³ããŒãããŸãã
ïŒSQLite3ã®ã€ã³ã¹ããŒã«ïŒ
æé ïŒïŒã³ãã³ãããã³ãããèµ·åããŸãã
æé ïŒïŒãgem install sqlite3ããšå ¥åããŠå®è¡ããSQLite3ãã€ã³ã¹ããŒã«ããŸãã
ïŒSQLite3ã®å®è¡ãã¡ã€ã«ãšDLLïŒ
æé ïŒïŒSQLite3ã®å ¬åŒãµã€ããžã¢ã¯ã»ã¹ããŸãã
https://www.sqlite.org/index.html
æé ïŒïŒãDownloadãã®ã¡ãã¥ãŒãã¯ãªãã¯ããSQLite3ã®ããŠã³ããŒãçšããŒãžã衚瀺ããŸãã
æé ïŒïŒæ¬èšäºäœæã«ããããWindows10ïŒ64bitïŒç°å¢ã§å©çšããŠããŸãã®ã§ããPrecompiled Binaries for Windowsãã®äžã«ãããsqlite-dll-win64-x64-3250200.zipããã¯ãªãã¯ããDLLãä»»æã®å Žæã«ããŠã³ããŒãããŸãã
æé ïŒïŒRubyãã€ã³ã¹ããŒã«ãããã£ã¬ã¯ããªã®ãbinããã£ã¬ã¯ããªã«ãããŠã³ããŒãããå§çž®ãã¡ã€ã«ã«å«ãŸããŠãããsqlite3.dllããç§»åããŸãã
æé ïŒïŒæ¬¡ã«å ã»ã©ãšåãããŒãžã®ããPrecompiled Binaries for Windowsãã®äžã«ãããsqlite-tools-win32-x86-3250200.zipããã¯ãªãã¯ããDLLãä»»æã®å Žæã«ããŠã³ããŒãããŸãã
æé ïŒïŒRubyãã€ã³ã¹ããŒã«ãããã£ã¬ã¯ããªã®ãbinããã£ã¬ã¯ããªã«ãããŠã³ããŒãããå§çž®ãã¡ã€ã«ã«å«ãŸããŠãããsqldiff.exeããsqlite3.exeããsqlite3_analyzer.exeãã®3ã€ã®ãã¡ã€ã«ãç§»åããŸãã
以äžãRuby on RailsããSQLiteãå©çšããããã«å¿ èŠãšãªãæé ãšãªããŸãã
Ruby on Rails ã䜿ã£ãŠã¢ããªãäœæãå®è¡ãã

ã€ã³ã¹ããŒã«ãå®äºãããšããã§ãç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœæããŠã¿ãŸãããã
ã¢ããªã®äœæ
Ruby on Railsã®éçºææ³ã¯ããŒãããã¢ããªã±ãŒã·ã§ã³ãäœæããã®ã§ã¯ãªãããŸãã¢ããªã±ãŒã·ã§ã³ã®ãã³ãã¬ãŒããäœæãããã®åŸãã³ãã¬ãŒãã®å¿ èŠãªåæãä¿®æ£ããããšããæé ã§éçºãè¡ããŸãã
æé ïŒïŒã³ãã³ãããã³ãããèµ·åããä»»æã®ãã©ã«ãã«ç§»åããŸããä»åã¯ããC:\ddd\rails\ããã£ã¬ã¯ããªã«ç§»åããŸãã
æé ïŒïŒRuby on Railsã®ã³ãã³ãã䜿ã£ãŠã¢ããªãäœæããŸããæžåŒã¯æ¬¡ã®ãšããã§ãã
rails new ã¢ããªã±ãŒã·ã§ã³å [option]
ä»åã¯ãsampleãšããã¢ããªãäœæããŸãã
ãrails new sampleããšã³ãã³ãããã³ããã«æã¡èŸŒã¿ãå®è¡ããŸããã³ãã³ãããã³ããäžã§ãæ§ã
ãªãã¡ã€ã«ãäœæãããŸãããã¡ã€ã«ã®äœæãçµãããšãbundle installããèªåã§å®è¡ãããã¢ããªã®äœæãå®äºããŸãã
bundlerã䜿ã£ãã©ã€ãã©ãªã®ç®¡ç
bundlerãšã¯ãGemã®äŸåé¢ä¿ãšããŒãžã§ã³ã管çããããã®ããŒã«ã§ãã
Rubyã§äœ¿ãããã©ã€ãã©ãªãã¢ããªã±ãŒã·ã§ã³ã¯Gem圢åŒã®ããã±ãŒãžã§ç®¡çãããŠããŸãã
Ruby on Railsã®ã¢ããªéçºãè€æ°ã®PCã§è¡ãªãå Žåãå
šãŠã®PCã§å¯Ÿè±¡ã®ã¢ããªã§äœ¿çšããGemããã±ãŒãžã®ã€ã³ã¹ããŒã«ããŸãããŒãžã§ã³ãæããå¿
èŠããããŸãããããã®ã©ã€ãã©ãªã管çããã®ããbundlerã«ãªããŸãã
bundlerã§ãã䜿ãã³ãã³ãã¯ã次ã®3ã€ãšãªããŸãã
(1) bundle init
gemãã€ã³ã¹ããŒã«ããããåçš®ã€ã³ã¹ããŒã«ãããgemãåæããGemfileãäœæããããã®ã³ãã³ãã§ãã
(2) bundle install
äœæãããGemfileãããšã«gemãã€ã³ã¹ããŒã«ããã³ãã³ãã§ãã
(3) bundle update
ã€ã³ã¹ããŒã«ãšåæã«ãgemã«æ°ããããŒãžã§ã³ãããã°æŽæ°ããã³ãã³ãã§ãããã®ã³ãã³ããçºè¡ãããšãšã©ãŒã解決ãããšããããšãããã®ã§ãèŠããŠãããŸãããã
MVCïŒã¢ãã«/ãã¥ãŒ/ã³ã³ãããŒã©ïŒ
Ruby on Railsã§ã¢ããªãéçºããäžã§éèŠãšãªãMVCã®æŠå¿µã«ã€ããŠèª¬æããŸãã
ãŸããMVCãšã¯äœã§ããããïŒãModelïŒã¢ãã«ïŒããViewïŒãã¥ãŒïŒããControllerïŒã³ã³ãããŒã©ïŒãã®ç¥ç§°ã«ãªããŸãã
(1) ModelïŒã¢ãã«ïŒã®åœ¹å²
ã¢ãã«ã§ã¯ããŒã¿ã®ç®¡çãäž»ãªåœ¹å²ã«ãªããŸããã³ã³ãããŒã©ããåããæç€ºã«åŸã£ãŠå¿
èŠãªããŒã¿ãããŒã¿ããŒã¹ïŒDBïŒããåãåºããã³ã³ãããŒã©ãžæ
å ±ãè¿ããããããŒã¿ããŒã¹ã«å
¥åããããç¹å®ã®æ
å ±ãå¥ã®æ
å ±ã«æžãæãããããããšããããŸãã
(2) ControllerïŒã³ã³ãããŒã©ãŒïŒã®åœ¹å²
ã³ã³ãããŒã©ã¯ãååã®ãšãããåžä»€å¡ãçãªåœ¹å²ãæãããŸããã¢ãã«ã«å¯ŸããŠãããŒã¿ã®åãæ±ãã«ã€ããŠæç€ºãåºããŸãããŸãããã¥ãŒã«å¯ŸããŠããã¶ã€ã³ãã€ã³ã¿ãŒãã§ãŒã¹ã«ã€ããŠã®æç€ºãåºããŸãã
(3) ViewïŒãã¥ãŒïŒã®åœ¹å²
ãã¥ãŒã«ã¯ããã¶ã€ã³ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã管çãã圹å²ããããŸããã³ã³ãããŒã©ããæž¡ãããããŒã¿ãå©çšããŠWebãµã€ãäžã§ã©ã®ããã«è¡šçŸããã®ããã¥ãŒã§å®çŸ©ããŸãã
èŠæš¡ã®å€§ããã¢ããªãéçºããå Žåãä»ã©ã®åœ¹å²ãæã£ããã¡ã€ã«ãç·šéããŠããã®ããã€ãŸããMVCã®æ§é ãæèãã€ã€ãéçºãé²ããŠããå¿ èŠããããŸãã
ãã©ã¡ãŒã¿ã®ååŸæ¹æ³ïŒparamsïŒ
Ruby on Railsã§ã¯ããªã¯ãšã¹ãæ å ±ïŒPOSTã§ãã©ãŒã ããéä¿¡ãããããŒã¿ãã¯ãšãªæ å ±ïŒããparams[:ãã©ã¡ãŒã¿å]ãšãã圢åŒã§ååŸã§ããŸãã
次ã®3ã€ã®åãæž¡ãæ¹æ³ããããŸãã
(1) ãªã³ã¯ã«ãããã©ã¡ãŒã¿ã®åãæž¡ã
ViewïŒãã¥ãŒïŒã®èšå®
<%= link_to 'äŒå¡', controller: 'users', action: 'show', id: u001, name: 'å±±ç°å€ªé' %>
ControllerïŒã³ã³ãããŒã©ïŒã®èšå®
def show
id = params[:id] #=> id = u001
name = params[:name] #=> name = 'å±±ç°å€ªé'
end
(2) ãã©ãŒã ã«ãããã©ã¡ãŒã¿ã®åãæž¡ã
ViewïŒãã¥ãŒïŒã®èšå®
<% form_for @member do |f| %>
ååïŒ<%= f.text_field :name %>
äŒç€ŸïŒ<%= f.text_field :company %>
<% end %>
ãã¥ãŒã«ãã£ãŠè¡šç€ºããããã©ãŒã ã«ããŠãŒã¶ãŒããååïŒå±±ç°å€ªéãäŒç€ŸïŒå±±ç°æ ªåŒäŒç€Ÿãšå ¥åããå Žåãparamsã«ã¯ã次ã®å€ãæ ŒçŽãããŸãã
params[:member][:name] #=> å±±ç°å€ªé
params[:member][:company] #=> å±±ç°æ ªåŒäŒç€Ÿ
(3) ã¯ãšãªæ å ±ããã©ã¡ãŒã¿ã§æž¡ã
http://localhost:3000/users/show?id=u001&name=å±±ç°å€ªé
äžèšã®ãããªURLãªã¯ãšã¹ãã®å Žåãæž¡ãããå€ã¯ä»¥äžãšãªããŸãã
params[:id] #=> u001
params[:name] #=> å±±ç°å€ªé
paramsã®è©³çްã¯ã次ã®URLãåç §ããŠãã ããã
http://railsdoc.com/references/params
Ruby on Railsã«ãããããŒã¿ããŒã¹ãšã€ã¡ãŒãž

ããŒã¿ããŒã¹èšå®ãã¡ã€ã«ïŒMySQLçšïŒ
Ruby on Railsã®ã¢ããªãäœæãããšãèªåçã«ãdatabase.ymlããã¡ã€ã«ãäœæãããŸãã
ããã©ã«ãã§SQLiteã䜿ãåæã§äœæããããããä»ã®ããŒã¿ããŒã¹ã䜿çšããå Žåãã¢ããªãäœæããæã«ãªãã·ã§ã³ã§ããŒã¿ããŒã¹ãæå®ããŸãã
æ§æ
rails new ã¢ããªã±ãŒã·ã§ã³å -d ããŒã¿ããŒã¹
å ·äœäŸïŒMySQLã䜿çšããå Žåãæ¬¡ãæå®ããŸãã
rails new mysql_app -d mysql
ããŒã¿ããŒã¹èšå®ãã¡ã€ã«ã®ãconfig/database.ymlããã¡ã€ã«ãäœæãããŸãã®ã§ãããã¹ããšãã£ã¿ã§éããŠããã¹ãåããŠãŒã¶ãŒåããã¹ã¯ãŒãã®èšå®ãè¡ããŸãã
åæããŒã¿ã®æå ¥ïŒrake db:seedïŒ
Ruby on Railsã¢ããªã§ãããŒãã«ãmodelãäœæããåŸããã¹ããè¡ãããã®ãµã³ãã«ããŒã¿ããäºåã«è¿œå ããå¿ èŠæ§ãåºãŠããããšããããŸããåœç¶ãåæããŒã¿ãããŒã¿ããŒã¹ã«çŽæ¥å ¥åããæ¹æ³ããããŸãããä»å㯠Ruby on Rails ã§çšæãããŠããä»çµã¿ã玹ä»ããŸãã
Ruby on Railsã¢ããªãã©ã«ãã«æ ŒçŽãããŠãããdb/seeds.rbããã¡ã€ã«ããããã¹ãã§éããŸãããã®ãã¡ã€ã«ã«ãã¢ãã«ã¯ã©ã¹ãcreateã¡ãœãããã«ã©ã åãå€ã®é çªã«ãããŒã¿ã远å ããŠããŸãã
æ§æ
ã¢ãã«ã¯ã©ã¹å.create(:ã«ã©ã å1 => å€1, :ã«ã©ã å2 => å€2, ...)
å ·äœäŸïŒã¢ãã«ã¯ã©ã¹åïŒFRUITSïŒãã«ã©ã åïŒïŒnameïŒãã«ã©ã åïŒïŒcolorïŒ
# coding: utf-8
FRUITS.create(:name => 'ãªã³ãŽ', :color => 'èµ€')
FRUITS.create(:name => 'ã¿ãã', :color => 'ãªã¬ã³ãž')
ã¹ã¯ãªãããã¡ã€ã«ãäœæããããã³ãã³ãããã³ãããèµ·åããæ¬¡ã®ã³ãã³ããå®è¡ããŸãã
rake db:seed
ã¹ã¯ãªãããå®è¡ãããããŒãã«ã«åæããŒã¿ã远å ãããŸãã
ã€ã¡ãŒãžã¿ã°ã®äœæïŒimage_tagïŒ
Ruby on Railsã«ãããç»åã衚瀺ãããæ¹æ³ã解説ããŸãã
æ§æ
image_tag(source, options = {})
å ·äœäŸïŒsample.jpgãšãããã¡ã€ã«ã320x480ã®ãµã€ãºã§è¡šç€ºããããã
<%= image_tag 'sample.jpg', :size =>'320x480' %>
ãã®æå®ã§ãsample.jpgç»åããæšª320pxã瞊480pxã«å€§ãããç·šéãã衚瀺ããããšãã§ããŸããç»åãµã€ãºæå€ã«ããã, :ã³ãã³ã =>''ãã§ããããæå®ã§ããŸãã®ã§ãèå³ãããã°èª¿ã¹ãŠã¿ãŠãã ããã
åç §URL: http://railsdoc.com/references/image_tag
ãŸãšã
Ruby on Railsã®ã€ã³ã¹ããŒã«æ¹æ³ãããäœãã§ããã®ãã解説ããŸãããããããã§ãããïŒ
Ruby on Railsã䜿ã£ãŠãWebãµã€ããWebããŒã¹ã®æ¥åã·ã¹ãã ãå¹çè¯ãéçºããŠãããŸãããïŒ
ãã®èšäºã®ããŒã¯ãŒãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
TECH PLAYã§ã¯ãITãšã³ãžãã¢åãã®å匷äŒã»ã€ãã³ãæ
å ±ãæäŸããŠããŸãã
èå³ã®ããæ¹ã¯ãã²ãåå ãã ããã
- ãRubyãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãRuby on Railsãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãããã°ã©ãã³ã°ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãåå¿è ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã












