0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby初学者によるsitemapシステムの作成奮闘記

Last updated at Posted at 2024-11-13

これは全くRubyに触れたことがない初学者による記録です。
Rubyの知識がある方にとっては参考にはならない(参考サイトは参考になります!)と思いますので、頑張ってんなぁくらいの温かい目で見もっていただけると幸いです。

筆者の環境
・Windows11
・エディター:cursor(VSCodeのようなもの。おすすめです)

初めに

サイトマップを作ってみたかったため、いろいろな記事を渡り歩いてよさそうなものを見つけ、やってみようの精神で始めました。

参考サイトを見つけた時点で私はRubyを触ったことが全くありません。
HTML/CSSとコマンドが抵抗なく使える程度のレベルです。
なので初歩的なことから何をしたか『奮闘記』として記録に残します。

1.Rubyをインストールする

前述のとおりRubyを触ったことがないのでインストールから行います。

2つの参考サイトを見比べつつ、手順に従ってRubyをインストールしていきます。

どのバージョンがいいか迷ったのですが、ダウンロードサイトの右側にオススメのバージョンが記載されています。
image.png
image.png
※2024/11/13現在のスクショ

今回はwith Devkitの一番上に強調されていたRuby+Devkit 3.3.6-2 (x64) をインストールすることにしました。

image.png
インストーラーの処理が完了し、コマンドプロンプトが開きました。

1,3と入力するとインストールが始まり…
image.png
インストールが完了しました!
(余談ですが、1,3と入力する際に1と3を入力するのかと思って13と入力して怒られました。慌てることなく1,3を入力したらうまくいきました)

エンターで閉じてRubyのインストールは完了しました。

image.png
コマンドプロンプトでもRubyがインストールできていることが確認できました!

2.下準備

2-1. Ruby bundlerのインストール

晴れてRubyのインストールができたのですが、参考サイトのように作るにはgemというものとの依存関係をいい感じにしてくれるものが必要なようです。

あとで自分が確認しやすいのでデスクトップにsitemapというフォルダを新規に作成しました。

コマンドプロンプトよりもcursorのターミナルで処理するほうが好きなので、新規に作成したsitemapフォルダをcursorで開き、以下を実行

gem install bundler 
余談 cursorのターミナルがコマンドプロンプトを使うように設定されていなかったので上記のコマンドを実行してもエラーになったため、これを機に設定を変更しました。

image.png

ファイル>設定 を開き、以下を検索しCommand Promptに設定。

terminal.integrated.defaultProfile.windows

image.png

cursorを開きなおしたらrubyのコマンドが通るようになりました。

gem install bundlerが実行できました。

2-2.Ruby on Railsのインストール

Rubyのフレームワークをインストールします。

フレームワークであるRuby on Railsは、ウェブアプリケーションの構築に必要な構造とすべてのコンポーネントを提供し、構築を簡素化してくれます。

2-3.アプリケーション作成に必要な構造を準備する

現在デスクトップ上に作成したsitemapというファイルは空っぽです。その中にアプリケーションを作るためのベースとなるものをコマンドによって準備してもらいます。

rails new .

コマンドを実行すると以下のように様々なファイルが作成されます。

【実行前】
sitemap/
(空のフォルダ)

【実行後】
sitemap/
├── app/
├── config/
├── db/
├── Gemfile <- ここにsitemap_generatorを追加できる
└── その他必要なファイル

3.sitemap_generatorを使ってサイトマップを作成

これで必要な準備は整い、もともとやりたかったことができる状態になりました。

ここからは記事に書いてある通りなので、自分が困ったり詰まったりした部分を書き残します。

以下は、ほかに参考にしたサイト

サイトマップ作成メモ

sitemap.rb
# サイトマップファイルが保存されるディレクトリを指定
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'
sitemap.rb
# お知らせページの更新頻度を月ごとに指定
add '/info', changefreq: 'monthly'
sitemap.rb
# 動的に増えるページの場合は以下のような記述
# /info配下の記事を追加
Article.find_each do |article|
  add "/info/#{article.slug}", lastmod: article.updated_at
  end
Articleを使うには Articleモデルのインストールが必要だそうです。

1.Articleモデルを生成

rails generate model Article title:string slug:string content:text

2.データベースをマイグレート

rails db:migrate

3.config/routes.rbに以下を追記

routes.rb
Rails.application.routes.draw do
  resources :articles, path: 'info'
end

これでエラー無くbundle exec rake sitemap:refresh:no_pingが通るようになりました。


sitemap.rb
# /info/カテゴリー名/記事名 の時の書き方
add "/info/#{article.category}/#{article.slug}"

サイトマップの生成

・検索エンジンに通知せずに新しいサイトマップを作成するには以下

bundle exec rake sitemap:refresh:no_ping

お試しで作ったので検索エンジンに通知させずに実行しました。
実際に運用する際も先にsitemap:refresh:no_pingで作成し、そのあとでsitemap:refreshを実行したほうがいいのではと思いました。

サイトマップが指定したディレクトリに生成されました!
image.png

生成されたサイトマップの確認

作業中…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?