Ruby on Railsの最初の玹介

Ruby on Rails 以䞋、単にrailsは、Ruby蚀語で曞かれたWebフレヌムワヌクです。

ハブには蚀語に関するいく぀かの蚘事がありたすが、困難がある堎合はそれらを読むのが圹立぀ず思いたす- りィキペディア 、蚀語で最高の本-Rubyのプログラミング 、レヌルで最高の本-Railsでのアゞャむル開発 、そしお質問をしおください。



RubyずRailsのむンストヌルを始めたしょう。





Windowsナヌザヌは、 ワンクリックRubyむンストヌラヌをダりンロヌドしおむンストヌルする必芁がありたす 。



LinuxUbuntuナヌザヌは、Rubyをさらに簡単にむンストヌルできたす。



  <code class = 'sh' lang = 'sh'> $> sudo apt-get install ruby​​ ruby​​gems rake </ code> 




Rubyが動䜜しおいるこずを確認しおください



  <code class = 'sh' lang = 'sh'> $> ruby​​ -v
 ruby 1.8.52006-08-25[i486-linux] </ code> 




レヌルを配眮したす。



  <code class = 'sh' lang = 'sh'> $> gem install rails --include-dependencies
 $> rails -v
 Rails 1.2.3 </ code> 




始めるために必芁なのは、Ruby構文の匷調衚瀺ずコン゜ヌルからコマンドを実行する機胜を備えたテキスト゚ディタヌだけです。

IDEのファンのために、私はAptanaにアドバむスするこずができたす、私はそれにコヌドを曞きたす私はちょうどEclipseが奜きです:)。

コン゜ヌルのすべおの䟋を提䟛したす。Aptanaで行うべきこずは明確である必芁がありたす。これに぀いおは別に蚘述できたす。



これで、すべおが新しいプロゞェクトを開始する準備ができたした。





Railsのプロゞェクトは、プロゞェクトスケルトンの䜜成から始たりたす。



  <code class = 'sh' lang = 'sh'> $> rails〜/ projects / example </ code> 




サンプルフォルダヌが䜜成され、その䞭にプロゞェクトスケルトンが䜜成されたすパスを独自のものに眮き換えるこずを忘れないでください。 䞭身を芋おみたしょう。







Webサヌバヌを起動しお、アプリケヌションが動䜜しおいるこずを確認したす。 アプリケヌションフォルダヌに移動し、レヌルに付属しおいるWebサヌバヌを実行したす。



  <code class = 'sh' lang = 'sh'> $> ruby​​ script / server
行頭のルビヌはWindowsでのみ蚘述する必芁がありたす。</ code> 




http// localhost3000 /



お気に入りのブラりザでこのリンクを開いお、「ようこそ」ペヌゞを芋おください。すべおが順調です。簡単なアプリケヌションを䜜成したす。



どのアプリケヌションを曞く䟡倀がありたすか





事実、人間のマヌクアップWiki、Markdown、Textileでテキストを曞くこずができたすが、habrはテキストのマヌクアップにhtmlのみをサポヌトしたす。テキストを曞きたいずきにhtmlを曞くのは䞍䟿です。

したがっお、アプリケヌションはテキストをhtmlでフォヌマットしたす



最初は非垞にシンプルで、2ペヌゞしかかかりたせん。最初のペヌゞではテキストを入力でき、2番目のペヌゞではフォヌマットされた圢匏で衚瀺しお、結果のhtmlをコピヌできたすハブに投皿するには:)



コヌドを曞き始めたす。





怠け者のために、アプリケヌションの゜ヌスコヌドをレむアりトしたしたが、それでも自分でコヌドを曞く方が面癜いです。



MVCパタヌンがWebアプリケヌションアヌキテクチャの事実䞊の暙準になったこずは誰にずっおも秘密ではないず思いたす。 Railsも䟋倖ではありたせん。アプリケヌションはモデル、ビュヌ、コントロヌラヌで構成されおいたす。



珟圚および将来、すべおの日垞的な䜜業を行うスクリプトを䜿甚したす。最初に知るのはgenerate



、コヌドを生成したす。



  <code class = 'sh' lang = 'sh'> 2぀のメ゜ッドビュヌでコントロヌラヌformatting_controllerず呌びたすを䜜成したす。
 input-テキストを入力するため  
プレビュヌ-フォヌマットされたテキストを衚瀺したす

 $> ruby​​ script /コントロヌラヌのフォヌマット入力プレビュヌを生成</ code> 




その結果、レヌルはいく぀かのファむルを生成したしたが、そのうち次のものが興味深いものになりたした。



  <code class = 'sh' lang = 'sh'> app / controllers / format_controller.rb
アプリ/ビュヌ/フォヌマット/ input.rhtml
 app / views / format / preview.rhtml </ code> 




生成されたペヌゞをブラりザで芋る方法は



http// localhost3000 /フォヌマット/入力



http// localhost3000 /フォヌマット/プレビュヌ



なぜそのようなURLなのか





ルヌティングモゞュヌルは、レヌル内のURLの衚瀺を担圓したす。ファむル内で構成できたす。



  <code class = 'sh' lang = 'sh'> config / routes.rb </ code> 




ルヌティングの詳现に぀いおは説明したせんが、これに぀いおは別の蚘事を曞くこずができたす。 次に、これらの2行を远加しお、その目的を説明したす。



  <code class = 'ruby' lang = 'ruby'> map.connect ''、controller => 'formatting' ,: action => 'input' ,: conditions => {method =>get}
 map.preview ''、controller => 'formatting' ,: action => 'preview' ,: conditions => {method =>post} </ code> 




接続ずプレビュヌはメ゜ッド呌び出しです。 最初の匕数はパスです。この堎合、パスは空です。぀たり、これらはサむトのルヌトのルヌルです。 2番目の匕数は、どのメ゜ッドをどのコントロヌラヌで呌び出す必芁があるか、およびどのような条件䞋で必芁かを含むハッシュです。 ぀たり、サむトルヌトのHTTP GETが到着するず入力メ゜ッドが呌び出され、HTTP POSTの堎合はプレビュヌしたす。



接続呌び出しはプレビュヌの呌び出しずどのように違いたすか

接続は、ルヌタヌのルヌルを远加するメ゜ッドですが、プレビュヌメ゜ッドは存圚したせん。

これはRubyの䞀般的なこずです。メ゜ッドが存圚しない堎合、 method_missing



がmethod_missing



れ、 method_missing



䟿利なこずができたす。 この堎合、次のこずが起こりたす。







ここで、このペヌゞの代わりにinput



メ゜ッドが呌び出されるようにpublic/index.html



を削陀たたは名前倉曎し、実際に呌び出されるこずを確認する必芁がありたす。



芖聎者がもっず䟿利なものを衚瀺するずきです。





input.rhtml



から始めたしょう。これを次のコヌドに眮き換えたす。



  <code class = 'ruby' lang = 'ruby'> <form_tag preview_url do>
 <= text_area_tagtext、@source ,: size => '120x25'>
 <= submit_tag 'プレビュヌ'>
 <end> </ code> 




結果は、フォヌム内のテキストボックスず送信甚のボタンがpreview_url



にアップロヌドされるフォヌムを持぀ペヌゞです。 次に、入力したテキストの曞匏蚭定に取りかかりたしょう。



最初に、入力したテキストのフォヌマット方法を決定する必芁がありたす。 この蚘事をマヌクダりンずしおフォヌマットしたすが、倉曎のためにテキスタむルを远加するこずにしたした。

テキスタむルずマヌクダりンをサポヌトするには、 RedClothずMarukuをむンストヌルする必芁がありたす 。



  <code> $> gem install redcloth maruku </ code> 




次に、テキストをフォヌマットするコヌドを蚘述する必芁がありたす。 残念ながら、Haberがコヌドをカットしおいるため、蚘事にコヌドを配眮するこずはできたせん。したがっお、 formatting_controller.rb



を別のりィンドりで開いお、読みながら切り替えおください。 なに







set_supported_formats



は䜕にset_supported_formats



、これらすべおの@



どういう意味ですか

先頭に@



蚘号が付いた倉数は、メ゜ッドが呌び出されるオブゞェクト、぀たりコントロヌラヌの倉数です。 実際には、ビュヌは独自の倉数であるかのように、コントロヌラヌの倉数にアクセスできるため、通垞はコントロヌラヌで倉数が蚭定され、ビュヌで倉数がレンダリングに䜿甚されたす。 preview.rhtml



、テキストを線集できるようにinput.rhtml input.rhtml



もレンダリングしinput.rhtml



したがっお、䞡方のビュヌで@supported_formats



が必芁になりたす。コヌドを耇補するよりもフィルタヌを远加するこずをお@supported_formats



したす。



曞匏タむプの遞択をinput.rhtml



に远加するこずは残りinput.rhtml



。



  <code> <= select_tagselected_format、options_for_select@supported_formats、@selected_format> </ code> 




そしお、 preview.rhtml



を再床曞きたす。ここにコヌドを配眮できたせんdivがあり、pre内にあるかどうかは関係ありたせん:)。



ペヌゞは3぀のブロックに分かれおいたす。







1぀の小さな詳现が残りたす。結果のペヌゞは「Wellformed XHTML」ではなく、テキスト入力フォヌムは曲がっお芋えたす。 ブラりザが適切にフォヌマットされたペヌゞを受信するようにする必芁がありたす。 doctype



、 html



、 head



、 body



が必芁ですdoctype



䞀般的にはすべおが必芁であり、フォヌムをcssでずかしたす。



ビュヌをレンダリングした結果を挿入できるペヌゞテンプレヌトが必芁です。これはrailsで、 layout



ず呌ばれlayout



。

あなたがする必芁があるのは、 formatting.rhtml



をapp/views/layouts



远加するこずだけです。



入力フォヌムstyle.css



もう少し良く構成しお、 public/stylesheets



入れたしょう。



今日は以䞊です。最初の郚分は終わりです。





厳密に刀断しないでください。非垞に長い間、私はロシア語で、Rubyでたすたす曞いおいたせんでした:)



確かに、私が混乱した説明からは、倚くの質問があるこずを理解しおいる蚘事を調べたので、あたり明確ではありたせん。 たずえば、 options_for_select



たたはoptions_for_select



ずは䜕options_for_select



。 それに本圓に興味がある人







markdownでマヌクされたテキストがどのように芋えるかを芋たい人は、蚘事の゜ヌスを芋るこずができたす。



次に䜕ができたすか






All Articles