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_missingmethod_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にアップロードされるフォームを持つページです。 次に、入力したテキストの書式設定に取りかかりましょう。

最初に、入力したテキストのフォーマット方法を決定する必要があります。 この記事をマークダウンとしてフォーマットしますが、変更のためにテキスタイルを追加することにしました。
テキスタイルマークダウンをサポートするには、 RedClothMarukuをインストールする必要があります

  <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」ではなく、テキスト入力フォームは曲がって見えます。 ブラウザが適切にフォーマットされたページを受信するようにする必要があります。 doctypehtmlheadbodyが必要ですdoctype一般的にはすべてが必要であり、フォームをcssでとかします。

ビューをレンダリングした結果を挿入できるページテンプレートが必要です。これはrailsで、 layoutと呼ばれlayout
あなたがする必要があるのは、 formatting.rhtmlapp/views/layouts追加することだけです。

入力フォームstyle.cssもう少し良く構成して、 public/stylesheets入れましょう。

今日は以上です。最初の部分は終わりです。



厳密に判断しないでください。非常に長い間、私はロシア語で、Rubyでますます書いていませんでした:)

確かに、私が混乱した説明からは、多くの質問があることを理解している記事を調べたので、あまり明確ではありません。 たとえば、 options_for_selectまたはoptions_for_selectとは何options_for_select 。 それに本当に興味がある人:



markdownでマークされたテキストがどのように見えるかを見たい人は、記事のソースを見ることができます。

次に何ができますか?

Source: https://habr.com/ru/post/J11472/


All Articles