Ruby on RailsのWebプロジェクト構築のためのシンプルガイド
Railsプロジェクトの作成
通常のRailsプロジェクトを作成するには、以下のコマンドを実行するだけです。
rails new blog
しかし、中国ではRubyGemsへの接続が非常に遅く、Railsはプロジェクト構造を構築した後、デフォルトでbundleコマンドを使用してRubyGemsから依存関係をダウンロードしてインストールするため、RubyGemsへの接続ができません。結局ネットワークの問題で詰まってしまうのです。そこで、-skip-bundle引数でbundle実行ステップをスキップする必要があります。その後、Gems のミラーソースを使用して依存関係をインストールすることができます。推奨されるソースはRuby Chinaが提供するhttps://gems.ruby-china.org/。
最終的な手順は以下の通りです。
プロジェクトを作成します。
rails new blog --skip-bundle
プロジェクトディレクトリにある Gemfile ファイルの 1 行目の source の後の引用符で囲まれた値を次のように変更します: https://gems.ruby-china.org/
最後に、プロジェクトディレクトリで bundle install を実行し、依存関係のインストールを完了します。
これで、標準的なRailsプロジェクトの雛形の作成は完了です。
Railsプロジェクトの設定
デフォルトでは、すでに生成されたプロジェクトのスケルトンを使用して開発を開始することができますが、実際のニーズに応じていくつかの設定を微調整する必要があります。例えば、タイムゾーンや、MySQLの使用などです。
タイムゾーンの設定
RailsはデフォルトでUTCタイムゾーンを使用します。このため、プロジェクトを国内でのみ使用する場合、データや時間関連の値が国内時間より最大8時間遅れてしまうことがあります。そのため、国際的でないプロジェクトでは、タイムゾーンを国内時間に固定するとよいでしょう。
プロジェクトディレクトリにあるconfig/application.rbファイルを開きます。config.time_zoneの項目の前にあるコメントを削除し、次にその項目の値をBeijingに変更し、最後に以下の設定で新しい行を追加してください。
config.active_record.default_timezone = :local
MySQLの使用
Railsはデフォルトでsqliteデータベースを使用します。MySQLを使用するには、MySQLパッケージをインストールし、デフォルトのデータベース設定を変更する必要があります。
プロジェクトディレクトリのGemfileファイルを開き、以下のフォーマットでグローバル依存パッケージmysql2を追加します。
gem 'mysql2'
次に、bundle install を実行して、依存パッケージをインストールします。
次に、config/database.yml ファイルを開き、開発ブロックの設定を以下のような形式に変更します。
development:
adapter: mysql2
database: blog
username: root
password:
host: 127.0.0.1
Railsのドキュメントを作成する
Railsをすでに使いこなしているベテランにとっては、このステップは必要ないでしょう。しかし、私のように、ヘルプを得るためにマニュアルを掘り下げる必要があることが多い初心者にとっては、ドキュメントをローカルに移動しておけば、インターネットがないときや遅すぎるときに心配する必要がありません。Railsには、プロジェクト内のRailsのローカルマニュアルとAPIドキュメントを生成するコマンドが用意されています。
まず、依存パッケージであるredcarpetを追加する必要があります。プロジェクトのGemfileファイルを開き、ローカル環境でのみ使用するため、グローバルな依存関係に追加する必要はありません。
gem 'redcarpet', '~> 3.1.2'
次に、: bundle install を実行して、パッケージをインストールします。
以下のコマンドを使用して、RailsのヘルプドキュメントとAPIドキュメントを生成します。
rake doc:guides
rake doc:rails
コマンドが完了すると、ドキュメントがdocディレクトリに生成されます。
Railsでカスタムコマンドを作成する
Webアプリケーションを開発していると、どうしてもターミナルで実行するコマンドスクリプトを書く必要性に迫られることがあります。例えば、非常に大きなテキストからデータを取り込みたいとします。これをRailsで行うのはかなり簡単で、以下にその例を示します。
まず、スクリプトファイルを作成します。Railsプロジェクトのlib/tasksディレクトリにhello.rakeファイルを作成します。このファイルは以下のようなものです。
namespace :hello do
task :world do
puts "Hello, World!"
end
end
これで、rakeコマンドで実行できる簡単なグリーティングスクリプトが完成しました。
rake hello:world
デフォルトでは、scriptコマンドはRailsプロジェクト・モジュールを導入しません。導入する必要がある場合は、簡単です! たとえば、プロジェクトに参加しているすべてのお客さんに挨拶したい場合。
namespace :hello do
# ...
task :customers => :environment do
for customer in Customer.all
puts sprintf("hello, %s", customer.name)
end
end
end
たまたまプロジェクトに Customer モジュールがあり、たまたま name フィールドがある場合、rake hello:customers を実行して効果を確認することができます。これを最初のタスクと比較してみてください。ここでは => :environment というコードが追加されており、プロジェクト環境の依存関係を導入するコードになっています。シンプルだと思いませんか?
関連
-
画像フィルターアルゴリズムコードのRuby実装
-
挿入ソートアルゴリズムのRuby実装と高度な双方向挿入ソートコード例
-
Rubyにおけるフックメソッドとメソッド呼び出しへのフックの追加例
-
GitHubが提唱するRubyコードの書き方まとめ
-
Rubyを使ったラムダ計算の詳しいシミュレーション方法
-
MongoDBに接続するためのRuby on Railsフレームワークアプリケーション チュートリアル
-
Rubyの4つの比較関数(equal?, eql?, ==, ===)について解説します。
-
RubyGnome2 ライブラリを用いた GTK 環境での Ruby GUI プログラミングの基本的な考え方
-
Rubyにおけるコメントの使い方と中国語のエンコーディングについて解説します。
-
Rubyバージョン管理ツールRVMのインストールとチュートリアルの使用方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン