RubyonRailsアプリケーションを構築する方法
序章
Rails は、Rubyで記述されたWebアプリケーションフレームワークです。 共通の目標がある場合、設定された規則が開発者に最も役立つと仮定して、アプリケーション開発には意見の分かれるアプローチを取ります。 したがって、Railsは、ルーティング、ステートフルデータ、アセット管理などを処理するための規則を提供して、ほとんどのWebアプリケーションが必要とするベースライン機能を提供します。
Railsは、 model-view-controller (MCV)アーキテクチャパターンに従います。これにより、モデル内にあるアプリケーションのロジックが、アプリケーション情報のルーティングと表示から分離されます。 この組織構造は、開発者がコードをヘルパーおよび部分に抽出できるようにする他の規則とともに、アプリケーションコードが不必要に繰り返されないようにします。
このチュートリアルでは、ユーザーがサメとその行動に関する情報を投稿できるようにするRailsアプリケーションを作成します。 これは、将来のアプリケーション開発の良い出発点になります。
前提条件
このチュートリアルに従うには、次のものが必要です。
- Ubuntu18.04を実行しているローカルマシンまたは開発サーバー。 開発マシンには、管理者権限を持つroot以外のユーザーと、で構成されたファイアウォールが必要です。
ufw
. これを設定する方法については、 Ubuntu18.04を使用した初期サーバー設定のチュートリアルを参照してください。 - Node.jsおよびnpmがローカルマシンまたは開発サーバーにインストールされています。 このチュートリアルでは、Node.jsバージョン10.16.3とnpmバージョン6.9.0を使用します。 Ubuntu 18.04にNode.jsとnpmをインストールする手順については、 Ubuntu18.04にNode.jsをインストールする方法の「PPAを使用したインストール」セクションの手順に従ってください。
- Ubuntu18.04でrbenvを使用してRubyonRailsをインストールする方法の手順1〜4に従って、ローカルマシンまたは開発サーバーにインストールされたRuby、 rbenv 、およびRails。 このチュートリアルでは、Ruby 2.5.1 、rbenv 1..1.2 、およびRails 5.2.0を使用します。
ステップ1—SQLite3をインストールする
Rails sharkアプリケーションを作成する前に、ユーザーデータを格納するデータベースがあることを確認する必要があります。 RailsはデフォルトでSQLiteを使用するように構成されており、これは多くの場合、開発において適切な選択です。 私たちのアプリケーションデータは高レベルのプログラムによる拡張性を必要としないため、SQLiteは私たちのニーズを満たします。
まず、パッケージインデックスを更新します。
- sudo apt update
次に、 sqlite3
と libsqlite3-dev
パッケージ:
sudo apt install sqlite3 libsqlite3-dev
これにより、SQLiteとそれに必要な開発ファイルの両方がインストールされます。
バージョンをチェックして、インストールが成功したことを確認します。
- sqlite3 --version
Output3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2alt1
SQLiteをインストールすると、アプリケーションの開発を開始する準備が整います。
ステップ2—新しいRailsプロジェクトを作成する
データベースをインストールしたら、新しいRailsプロジェクトを作成し、Railsがrailsnewコマンドで提供するデフォルトのボイラープレートコードのいくつかを確認できます。
と呼ばれるプロジェクトを作成します sharkapp
次のコマンドを使用します。
- rails new sharkapp
Railsが新しいプロジェクトのために何を作成しているかを示す大量の出力が表示されます。 以下の出力は、いくつかの重要なファイル、ディレクトリ、およびコマンドを強調しています。
Output create
. . .
create Gemfile
. . .
create app
. . .
create app/controllers/application_controller.rb
. . .
create app/models/application_record.rb
. . .
create app/views/layouts/application.html.erb
. . .
create config
create config/routes.rb
create config/application.rb
. . .
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
. . .
create config/database.yml
create db
create db/seeds.rb
. . .
run bundle install
. . .
Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
. . .
* bin/rake: Spring inserted
* bin/rails: Spring inserted
ここで強調表示されている出力は、Railsが以下を作成したことを示しています。
Gemfile
:このファイルには、アプリケーションのgem依存関係が一覧表示されます。 gem はRubyソフトウェアパッケージであり、Gemfileを使用するとプロジェクトのソフトウェアニーズを管理できます。app
:app
ディレクトリは、メインのアプリケーションコードが存在する場所です。 これには、アプリケーション自体を構成するモデル、コントローラー、ビュー、アセット、ヘルパー、およびメーラーが含まれます。 Railsは、MCVモデルが次のようなファイルで開始するためのアプリケーションレベルの定型文を提供します。app/models/application_record.rb
,app/controllers/application_controller.rb
、 とapp/views/layouts/application.html.erb
.config
:このディレクトリには、アプリケーションの構成設定が含まれています。config/routes.rb
:アプリケーションのルート宣言はこのファイルにあります。config/application.rb
:アプリケーションコンポーネントの一般設定は、このファイルにあります。
config/environments
:このディレクトリは、環境の構成設定が存在する場所です。 Railsにはデフォルトで3つの環境が含まれています。development
,production
、 とtest
.config/database.yml
:データベース構成設定はこのファイルにあり、4つのセクションに分かれています。default
,development
,production
、 とtest
. 付属のGemfileに感謝しますrails new
コマンド、これにはsqlite3
宝石、私たちのconfig/database.yml
ファイルにはadapter
パラメータをに設定sqlite3
すでに、このアプリケーションでSQLiteデータベースを使用することを指定しています。db
:このフォルダには、データベースmigrationsのディレクトリが含まれています。migrate
、 一緒にschema.rb
とseeds.rb
ファイル。schema.db
データベースに関する情報が含まれていますが、seeds.rb
データベースのシードデータを配置できる場所です。
最後に、Railsは bundle install コマンドを実行して、 Gemfile
.
すべての設定が完了したら、に移動します sharkapp
ディレクトリ:
- cd sharkapp
これで、 rails serverコマンドを使用して、Railsサーバーを起動し、アプリケーションが機能していることを確認できます。 ローカルマシンで作業している場合は、次のように入力します。
- rails server
Railsはにバインドします localhost
デフォルトでは、ブラウザを次の場所に移動してアプリケーションにアクセスできるようになりました。 locahost:3000
、次の画像が表示されます。
開発サーバーで作業している場合は、最初にポートで接続が許可されていることを確認してください 3000
:
- sudo ufw allow 3000
次に、サーバーを起動します。 --binding
フラグ、サーバーIPにバインドするには:
- rails server --binding=your_server_ip
案内する http://your_server_ip:3000
ブラウザで、Railsのウェルカムメッセージが表示されます。
見回したら、次の方法でサーバーを停止できます。 CTRL+C
.
アプリケーションを作成して配置したら、Railsボイラープレートから構築を開始して独自のアプリケーションを作成する準備が整います。
ステップ3—アプリケーションの足場
サメ情報アプリケーションを作成するには、アプリケーションデータを管理するためのモデル、そのデータとのユーザーインタラクションを可能にするビュー、およびモデルとビューの間の通信を管理するためのコントローラーを作成する必要があります。 これらのものを構築するために、 rails generate scaffold
このコマンドは、モデル、データベーススキーマを変更するためのデータベース移行、コントローラー、作成、読み取り、更新、および削除(CRUD)を管理するためのビューのフルセットを提供します。 )アプリケーションの操作、およびパーシャル、ヘルパー、テストのテンプレート。
なぜなら generate scaffold
コマンドは私たちのために非常に多くの仕事をします。Railsが内部で行っている仕事を理解するために、コマンドが作成するリソースを詳しく見ていきます。
私たちの generate scaffold
コマンドには、モデルの名前とデータベーステーブルに必要なフィールドが含まれます。 RailsはActiveRecord を使用して、モデルを持つオブジェクトとして構築されたアプリケーションデータとアプリケーションデータベースの間の関係を管理します。 各モデルはRubyクラスであり、 ActiveRecord::Base
クラス。 これは、Rubyクラスを操作するのと同じ方法でモデルクラスを操作できると同時に、ActiveRecordからメソッドを取得できることを意味します。 Active Recordは、各クラスがデータベース内のテーブルにマップされ、そのクラスの各インスタンスがそのテーブル内の行にマップされていることを確認します。
次のコマンドを入力して、 Shark
モデル、コントローラー、および関連するビュー:
- rails generate scaffold Shark name:string facts:text
と name:string
と facts:text
データベーステーブルに必要なフィールドと、受け入れる必要のあるデータのタイプに関する情報をRailsに提供しています。 どちらも私たちが望むものを入力する余地を与えてくれますが text
サメの事実のためにより多くのキャラクターを許可します。
このコマンドを入力すると、Railsが生成しているすべてのことを説明する出力の長いリストが再び表示されます。 以下の出力は、セットアップにとってより重要なことのいくつかを強調しています。
Output invoke active_record
create db/migrate/20190804181822_create_sharks.rb
create app/models/shark.rb
. . .
invoke resource_route
route resources :sharks
invoke scaffold_controller
create app/controllers/sharks_controller.rb
invoke erb
create app/views/sharks
create app/views/sharks/index.html.erb
create app/views/sharks/edit.html.erb
create app/views/sharks/show.html.erb
create app/views/sharks/new.html.erb
create app/views/sharks/_form.html.erb
. . .
Railsはでモデルを作成しました app/models/shark.rb
それに伴うデータベースの移行: db/migrate/20190804181822_create_sharks.rb
. 移行ファイルのタイムスタンプは、ここに表示されているものとは異なります。
また、コントローラーを作成しました、 app/controllers/sharks_controller.rb
、およびアプリケーションのCRUD操作に関連するビューは、 app/views/sharks
. これらの見解の中には部分的なものがありますが、 _form.html.erb
、ビュー全体で使用されるコードが含まれています。
最後に、Railsは新しい機知に富んだルートを追加しました。 resources :sharks
、 に config/routes.rb
. これにより、Railsルーターは着信HTTPリクエストを sharks
コントローラとそれに関連するビュー。
Railsは私たちのためにアプリケーションコードを構築する作業の多くを行ってきましたが、何が起こっているのかを理解するためにいくつかのファイルを見る価値があります。
まず、次のコマンドでコントローラーファイルを見てみましょう。
- cat app/controllers/sharks_controller.rb
Outputclass SharksController < ApplicationController
before_action :set_shark, only: [:show, :edit, :update, :destroy]
# GET /sharks
# GET /sharks.json
def index
@sharks = Shark.all
end
# GET /sharks/1
# GET /sharks/1.json
def show
end
# GET /sharks/new
def new
@shark = Shark.new
end
# GET /sharks/1/edit
def edit
end
# POST /sharks
# POST /sharks.json
def create
@shark = Shark.new(shark_params)
respond_to do |format|
if @shark.save
format.html { redirect_to @shark, notice: 'Shark was successfully created.' }
format.json { render :show, status: :created, location: @shark }
else
format.html { render :new }
format.json { render json: @shark.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /sharks/1
# PATCH/PUT /sharks/1.json
def update
respond_to do |format|
if @shark.update(shark_params)
format.html { redirect_to @shark, notice: 'Shark was successfully updated.' }
format.json { render :show, status: :ok, location: @shark }
else
format.html { render :edit }
format.json { render json: @shark.errors, status: :unprocessable_entity }
end
end
end
# DELETE /sharks/1
# DELETE /sharks/1.json
def destroy
@shark.destroy
respond_to do |format|
format.html { redirect_to sharks_url, notice: 'Shark was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_shark
@shark = Shark.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def shark_params
params.require(:shark).permit(:name, :facts)
end
end
コントローラは、情報が取得されて関連付けられたモデルに渡される方法、および情報が特定のビューに関連付けられる方法を管理する責任があります。 ご覧のとおり、 sharks
コントローラには、標準のCRUD操作に大まかに対応する一連のメソッドが含まれています。 ただし、エラーが発生した場合に効率を上げるために、CRUD関数よりも多くの方法があります。
たとえば、 create
方法:
. . .
def create
@shark = Shark.new(shark_params)
respond_to do |format|
if @shark.save
format.html { redirect_to @shark, notice: 'Shark was successfully created.' }
format.json { render :show, status: :created, location: @shark }
else
format.html { render :new }
format.json { render json: @shark.errors, status: :unprocessable_entity }
end
end
end
. . .
の新しいインスタンスの場合 Shark
クラスは正常に保存され、 redirect_to
新しいリクエストを生成し、それがコントローラに送信されます。 これは GET
リクエストし、それはによって処理されます show
メソッド。追加したばかりのサメをユーザーに表示します。
障害が発生した場合、Railsは app/views/sharks/new.html.erb
ルーターに別のリクエストを行うのではなく、テンプレートを再度作成して、ユーザーにデータを送信する別の機会を与えます。
サメのコントローラーに加えて、Railsは私たちに index
ビュー、にマップします index
コントローラのメソッド。 これをアプリケーションのルートビューとして使用するので、一見の価値があります。
次のように入力してファイルを出力します。
- cat app/views/sharks/index.html.erb
Output<p id="notice"><%= notice %></p>
<h1>Sharks</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Facts</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @sharks.each do |shark| %>
<tr>
<td><%= shark.name %></td>
<td><%= shark.facts %></td>
<td><%= link_to 'Show', shark %></td>
<td><%= link_to 'Edit', edit_shark_path(shark) %></td>
<td><%= link_to 'Destroy', shark, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New Shark', new_shark_path %>
The index
ビューは、インスタンスを繰り返し処理します Shark
にマップされているクラス sharks
私たちのデータベースのテーブル。 ERBテンプレートを使用して、ビューは個々のサメインスタンスに関連付けられているテーブルから各フィールドを出力します。 name
と facts
.
次に、ビューは link_to ヘルパーを使用して、提供された文字列をリンクのテキストとして、提供されたパスを宛先として、ハイパーリンクを作成します。 パス自体は、ヘルパーを介して可能になります。これは、定義したときに使用可能になりました。 sharks
との機知に富んだルート rails generate scaffold
指図。
私たちを見ることに加えて index
ビュー、私たちはまた、見ることができます new
ビューで、Railsがビューでパーシャルをどのように使用するかを確認します。 次のように入力して、 app/views/sharks/new.html.erb
テンプレート:
- cat app/views/sharks/new.html.erb
Output<h1>New Shark</h1>
<%= render 'form', shark: @shark %>
<%= link_to 'Back', sharks_path %>
このテンプレートは、新しいサメのエントリの入力フィールドがないように見えるかもしれませんが、 render 'form'
テンプレートがプルインしていることを示します _form.html.erb
部分的。ビュー間で繰り返されるコードを抽出します。
そのファイルを見ると、新しいsharkインスタンスがどのように作成されるかを完全に理解できます。
- cat app/views/sharks/_form.html.erb
Output<%= form_with(model: shark, local: true) do |form| %>
<% if shark.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(shark.errors.count, "error") %> prohibited this shark from being saved:</h2>
<ul>
<% shark.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= form.label :name %>
<%= form.text_field :name %>
</div>
<div class="field">
<%= form.label :facts %>
<%= form.text_area :facts %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
このテンプレートは、 form_withフォームヘルパーを利用します。 フォームヘルパーは、特定のモデルのフィールドとスコープを使用して、ユーザー入力から新しいオブジェクトを簡単に作成できるように設計されています。 ここ、 form_with
かかります model: shark
引数として、およびそれが作成する新しいフォームビルダーオブジェクトには、のフィールドに対応するフィールド入力があります。 sharks
テーブル。 したがって、ユーザーは両方のサメを入力するためのフォームフィールドを持っています name
とサメ facts
.
このフォームを送信すると、ユーザーデータを含むJSON応答が作成され、アプリケーションの残りの部分がparamsメソッドを介してアクセスできるようになります。 ActionController::Parameters
そのデータを持つオブジェクト。
今、あなたは何を知っています rails generate scaffold
が作成されたら、アプリケーションのルートビューの設定に進むことができます。
ステップ4—アプリケーションルートビューの作成と機能のテスト
理想的には、アプリケーションのランディングページをアプリケーションのルートにマップして、ユーザーがアプリケーションの目的をすぐに理解できるようにする必要があります。
これを処理する方法はいくつかあります。たとえば、 Welcome
コントローラと関連 index
ビュー。これにより、アプリケーションのさまざまな部分にリンクすることもできる一般的なランディングページがユーザーに提供されます。 ただし、私たちの場合、ユーザーが私たちに着陸するようにする index
今のところ、サメのビューでアプリケーションの目的を十分に紹介できます。
これを設定するには、でルーティング設定を変更する必要があります config/routes.rb
アプリケーションのルートを指定します。
開ける config/routes.rb
編集用、使用 nano
またはお気に入りの編集者:
- nano config/routes.rb
ファイルは次のようになります。
Rails.application.routes.draw do
resources :sharks
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
より具体的なものを設定せずに、デフォルトのビューは http://localhost:3000
また http://your_server_ip:3000
デフォルトのRailsウェルカムページになります。
アプリケーションのルートビューをにマップするために index
sharksコントローラーを表示するには、ファイルに次の行を追加する必要があります。
Rails.application.routes.draw do
resources :sharks
root 'sharks#index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
これで、ユーザーがアプリケーションルートに移動すると、サメの完全なリストが表示され、新しいサメエントリを作成し、既存のエントリを確認し、特定のエントリを編集または削除する機会があります。
ファイルを保存し、編集が終了したらエディターを終了します。 使用した場合 nano
ファイルを編集するには、を押して編集できます CTRL+X
, Y
、 それから ENTER
これで、次のコマンドを使用して移行を実行できます。
- rails db:migrate
移行を確認する出力が表示されます。
Railsサーバーをもう一度起動します。 ローカルで作業している場合は、次のように入力します。
- rails s
開発サーバーで、次のように入力します。
- rails s --binding=your_server_ip
案内する localhost:3000
ローカルで作業している場合、または http://your_server_ip:3000
開発サーバーで作業している場合。
アプリケーションのランディングページは次のようになります。
新しいサメを作成するには、ページの下部にある New Shark リンクをクリックすると、次の場所に移動します。 sharks/new
ルート:
アプリケーションをテストするために、いくつかのデモ情報を追加しましょう。 Name フィールドに「GreatWhite」を入力し、Factsフィールドに「Scary」を入力します。
作成ボタンをクリックしてサメを作成します。
これにより、 show
ルート、おかげで、 before_action
フィルタは、 set_shark
をつかむ方法 id
作成したばかりのサメの:
class SharksController < ApplicationController
before_action :set_shark, only: [:show, :edit, :update, :destroy]
. . .
def show
end
. . .
private
# Use callbacks to share common setup or constraints between actions.
def set_shark
@shark = Shark.find(params[:id])
end
. . .
サメのエントリで編集をクリックすると、編集機能をテストできます。 これはあなたをに連れて行きます edit
そのサメのルート:
変更 facts
ホオジロザメについては、「怖い」ではなく「大きい」と読み、サメの更新をクリックしてください。 これにより、 show
ルート:
最後に、戻るをクリックすると、更新されたものに移動します index
見る:
アプリケーションの基本機能をテストしたので、いくつかの検証とセキュリティチェックを追加して、すべてをより安全にすることができます。
ステップ5—検証を追加する
sharkアプリケーションはユーザーからの入力を受け入れることができますが、ユーザーが事実を追加せずにsharkを作成しようとしたり、データベースに既に存在するsharkのエントリを作成したりする場合を想像してみてください。 モデルに検証を追加することにより、データベースに入力される前にデータをチェックするメカニズムを作成できます。 アプリケーションのロジックはモデル内にあるため、ここでのデータ入力の検証は、アプリケーションの他の場所で検証するよりも理にかなっています。
このチュートリアルでは検証テストの作成については説明しませんが、テストの詳細については、Railsのドキュメントを参照してください。
サーバーをまだ停止していない場合は、次のように入力して停止します。 CTRL+C
.
あなたの shark.rb
モデルファイル:
- nano app/models/shark.rb
現在、ファイルには、 Shark
クラスはから継承します ApplicationRecord
、 ActiveRecord :: Base から継承します:
class Shark < ApplicationRecord
end
まず、いくつかの検証を追加しましょう name
フィールドに入力され、エントリが一意であり、エントリの重複を防止していることを確認するためのフィールド:
class Shark < ApplicationRecord
validates :name, presence: true, uniqueness: true
end
次に、の検証を追加します facts
それも確実に入力されるようにするためのフィールド:
class Shark < ApplicationRecord
validates :name, presence: true, uniqueness: true
validates :facts, presence: true
end
ここでは、固有のサメのエントリに関連付けられている限り、事実の一意性についてはあまり気にしません。
終了したら、ファイルを保存して閉じます。
いずれかを使用してサーバーをもう一度起動します rails s
また rails s --binding=your_server_ip
、ローカルで作業しているか、開発サーバーで作業しているかによって異なります。
でアプリケーションのルートに移動します http://localhost:3000
また http://your_server_ip:3000
.
NewSharkをクリックします。 フォームで、 Name フィールドに「GreatWhite」を追加し、 Facts フィールドに「BigTeeth」を追加して、 CreateSharkをクリックします。 次の警告が表示されます。
それでは、他の検証を確認できるかどうかを見てみましょう。 戻るをクリックしてホームページに戻り、もう一度新しいサメをクリックします。 新しいフォームで、 Name フィールドに「TigerShark」と入力し、Factsを空白のままにします。 シャークの作成をクリックすると、次の警告がトリガーされます。
これらの変更により、データベースに保存されるデータの一貫性を確保するために、アプリケーションでいくつかの検証が行われます。 これで、アプリケーションのユーザーに注意を向け、アプリケーションデータを変更できるユーザーを定義できます。
ステップ6—認証の追加
検証が行われると、データベースに保存されているデータについていくつかの保証があります。 しかし、ユーザーはどうですか? すべてのユーザーをデータベースに追加したくない場合は、許可されたユーザーのみがサメを追加できるように、いくつかの認証手段を追加する必要があります。 これを行うには、 http_basic_authenticate_withメソッドを使用します。これにより、ユーザーを認証するためのユーザー名とパスワードの組み合わせを作成できます。
bcryptまたはdevise gemを使用するなど、Railsでユーザーを認証する方法はいくつかあります。 ただし、今のところ、アプリケーション全体のアクションに適用するメソッドをアプリケーションコントローラーに追加します。 これは、将来、アプリケーションにコントローラーを追加する場合に役立ちます。
でサーバーを再度停止します CTRL+C
.
を定義するファイルを開きます ApplicationController
:
- nano app/controllers/application_controller.rb
内部には、の定義が表示されます ApplicationController
アプリケーション内の他のコントローラーが継承するクラス:
class ApplicationController < ActionController::Base
end
ユーザーを認証するために、ハードコードされたユーザー名とパスワードを使用します http_basic_authenticate_with
方法。 次のコードをファイルに追加します。
class ApplicationController < ActionController::Base
http_basic_authenticate_with name: 'sammy', password: 'shark', except: [:index, :show]
end
ここでユーザー名とパスワードを指定することに加えて、不要のルートを指定することで認証を制限しました。 index
と show
. これを達成する別の方法は、書くことでした only: [:create, :update, :destroy]
. このようにして、すべてのユーザーがすべてのサメを見て、特定のサメに関する事実を読むことができます。 ただし、サイトコンテンツの変更に関しては、ユーザーはアクセス権があることを証明する必要があります。
より堅牢なセットアップでは、この方法で値をハードコーディングすることは望ましくありませんが、デモンストレーションの目的で、これにより、アプリケーションのルートの認証を含める方法を確認できます。 また、RailsがデフォルトでセッションデータをCookieに保存する方法を確認できます。指定したアクションで認証すると、同じセッションで再度認証する必要はありません。
保存して閉じます app/controllers/application_controller.rb
編集が終了したら。 これで、実際の認証をテストできます。
いずれかでサーバーを起動します rails s
また rails s --binding=your_server_ip
どちらかでアプリケーションに移動します http://localhost:3000
また http://your_server_ip:3000
.
ランディングページで、 NewSharkボタンをクリックします。 これにより、次の認証ウィンドウがトリガーされます。
追加したユーザー名とパスワードの組み合わせを入力した場合 app/controllers/application_controller.rb
、新しいサメを安全に作成できるようになります。
これで、データ検証と基本認証スキームを備えた、動作するsharkアプリケーションができました。
結論
このチュートリアルで作成したRailsアプリケーションは、さらなる開発に使用できる出発点です。 Railsエコシステムの探索に興味がある場合は、プロジェクトドキュメントから始めるのが最適です。
Ruby on Railsアプリケーションのネストされたリソースを作成する方法を読んで、プロジェクトにネストされたリソースを追加する方法についても学ぶことができます。これは、アプリケーションのモデルとルートを構築する方法を示しています。
さらに、 React などのフレームワークを使用して、プロジェクトのより堅牢なフロントエンドをセットアップする方法を検討することもできます。 Reactフロントエンドを使用してRubyonRailsプロジェクトをセットアップする方法は、これを行う方法についてのガイダンスを提供します。
さまざまなデータベースオプションを調べたい場合は、 Ubuntu18.04のRubyonRailsアプリケーションでPostgreSQLを使用する方法を確認することもできます。この方法では、代わりにPostgreSQLを使用する方法について説明しています。 SQLiteの。 このデータベースの操作について詳しくは、PostgreSQLチュートリアルのライブラリを参照することもできます。