プロジェクトのホームページにアクセスしてください
最初にコマンド ラインで実行します (プロジェクト ディレクトリ (例: /workspace/library) にアクセスすることを忘れないでください) bunlde exec Rails サーバー
次に、ブラウザを開いて localhost:3000 にアクセスすると、ホームページが表示されます (このページは gem ファイル内に存在します。ライブラリ ディレクトリ内には見つかりません)。コンテンツを追加する必要があります。例: URL を入力し、ページを表示します。
ユーザーがアクセスする必要がある URL: localhost:3000/books/list があるとします。
次に、次のことを行うだけです。
1. ルーティングの変更 (ルーター)
2. 対応する (コントローラー、アクション) を作成します。
3. 対応するページ (erb) を作成します。
1. ルーティング config/routes.rb (ルーティング ファイル) を変更します。
このファイルに次のコードを追加します。
Rails.application.routes.draw do
# 可以生成/books
resources :books do
collection do
# 可以对应好(处理)/books/list这个链接
# 下面这个路由,让rails可以处理URL:/books/list这个链接,
# 不过处理这个链接有个前提,这个链接发起的请求方式是使用get请求发起的
get :list
end
end
end
(リソース ... する ... 終了 )
これは「ルート」を生成します。つまり、URL /books/list を認識し、それを書籍コントローラーの list アクションに渡して処理します。
2. コントローラー/アクションを作成し (コントローラーはアプリ ディレクトリにある必要があります)
、新しいコントローラー ファイルを作成します: app/controllers/books_controller.rb
このファイルに次のコードを追加します。
class BooksController < ApplicationController
# 创建对应的action,因为要求访问它的list,所以在这里给它加上list的action
def list
end
end
(コントローラーは、異なる URL の処理には使用されない複数のアクション (つまり、共通のメソッド) で構成されます。
このリスト アクションにはコードがありません。対応する erb ページ (app/views/books/list.html.erb) に直接ジャンプします。
class BooksController < ApplicationController
# 创建对应的action,因为要求访问它的list,所以在这里给它加上list的action
def list
# 1.渲染一段字符串
# render :text => 'hihihi'
# 2.渲染一个json
# render :json => {
# key: 'value'
# name: 'Tom'
# sex: 'male'
# }
# 3.啥也不写,就渲染对应的 app/views/books/list.html.erb
end
end
3. 対応するビュー ファイルを作成します。
新しいビュー ファイルを作成します: app/views/books/list.html.erb
(ブック コントローラー内のすべてのビューは app/views/books ディレクトリに配置する必要があります)
(対応するコントローラーの名前は何ですか。views/ の後に使用される名前は何ですか。例: Bookscontroller は、views/books です。
(アクションの名前、ビューの名前、リスト アクション、対応するビューは list.html.erb です)
次のコードのような HTML コンテンツを erb ファイルに追加できます。
<p>三体1 - 地球往事</p>
<p>三体1 - 黑暗森林</p>
<p>三体3 - 死神永生</p>
わかりやすくするために、HTML コードのみが表示されます。ブラウザにアクセスしてページの結果を確認してください。
4. ビューで、ruby コードを使用し、次のコードのようにapp/views/books/list.html.erb
のコンテンツを変更します。
<h3>注意:以下使用了RUBY代码来显示HTML</h3>
<!-- 先定义了一个数组<% books = [] %> -->
<% books = ['三体1 - 地球往事', '三体2 - 黑暗森林', '三体3 - 死神永生'] %>
<!-- 使用了一个循环 -->
<% books.each do |book| %>
<!-- 打印出来 -->
<p><%= book %></p>
<% end %>
<a href='/books/new'>新建图书页</a>
ご覧のとおり、構文は PHP や JSP と同じです
● <% %> は Ruby コードを実行します
● <%= %> は戻り値を表示します