1. ホーム
  2. スクリプト・コラム
  3. ルビートピックス

Ruby on RailsのWebプロジェクト構築のためのシンプルガイド

2022-01-16 04:28:51

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 というコードが追加されており、プロジェクト環境の依存関係を導入するコードになっています。シンプルだと思いませんか?