MySQL と Ruby on Rails を使用してシンプルなブログ管理システムを開発する方法
概要:
この記事では、MySQL と Ruby on Rails の使用方法を紹介します。シンプルなブログ管理システムを開発する ブログ管理システム。ブログ管理システムは、ユーザーがブログ投稿を作成、編集、管理できるようにする一般的な Web アプリケーションです。開発フレームワークとして Ruby on Rails を、データベース管理システムとして MySQL を使用します。データベースの設計、モデルの作成、コントローラーの開発、およびビューのレンダリングに焦点を当てます。具体的なコード例は記事内で説明します。
ステップ 1: 環境セットアップ
まず、Ruby on Rails と MySQL をインストールして構成する必要があります。具体的なインストール方法についてはここでは割愛しますので、操作方法については公式ドキュメントを参照してください。インストールが完了したら、コマンド ラインからインストールが成功したかどうかを確認できます。
ステップ 2: Rails アプリケーションを作成する
次のコマンドを使用して、新しい Rails アプリケーションを作成します:
rails new blog cd blog
ステップ 3: データベースを構成する
config/database を開きます。 yml
ファイルで、development
セクションを見つけて、次のように変更します。
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: your_username password: your_password host: localhost development: <<: *default database: blog_development test: <<: *default database: blog_test production: <<: *default database: blog_production username: blog password: <%= ENV['BLOG_DATABASE_PASSWORD'] %>
your_username
と your_password
を MySQL に置き換えます。データベースのユーザー名とパスワード。
ステップ 4: データベースを作成する
次のコマンドを実行してデータベースを作成します:
rails db:create
ステップ 5: ブログ投稿のモデルとデータベース テーブルを作成する
次のコマンドを実行しますModel という名前のデータベースと Post
のデータベース テーブルを作成するコマンド:
rails generate model Post title:string content:text rails db:migrate
上記のコマンドは、app/models に
post.rb ファイルを作成します。
ディレクトリとデータベース内に、タイトルとコンテンツの 2 つのフィールドを含む posts
という名前のテーブルを作成します。
ステップ 6: ブログ コントローラーの作成
次のコマンドを実行して、Posts
という名前のコントローラーを作成します:
rails generate controller Posts
上記のコマンドは app で実行されます。 /controllers
ディレクトリに posts_controller.rb
ファイルを作成します。
ステップ 7: ブログ コントローラーのメソッドを作成するapp/controllers/posts_controller.rb
ファイルを開き、次のメソッドをクラスに追加します:
class PostsController < ApplicationController before_action :set_post, only: [:show, :edit, :update, :destroy] def index @posts = Post.all end def show end def new @post = Post.new end def edit end def create @post = Post.new(post_params) if @post.save redirect_to @post, notice: 'Post was successfully created.' else render :new end end def update if @post.update(post_params) redirect_to @post, notice: 'Post was successfully updated.' else render :edit end end def destroy @post.destroy redirect_to posts_url, notice: 'Post was successfully destroyed.' end private def set_post @post = Post.find(params[:id]) end def post_params params.require(:post).permit(:title, :content) end end
上記のコードは、index
、show
、new
、edit
、create# などのブログ コントローラーのさまざまなアクションを定義します。 ##、
update、
destroy。これらのアクションは、すべてのブログ投稿の表示、単一のブログ投稿の表示、新しいブログ投稿の作成、ブログ投稿の編集、ブログ投稿の作成または編集の保存、ブログ投稿の更新、およびブログ投稿の削除に使用されます。
app/views/posts ディレクトリを開き、次のファイルを作成します:
: すべてのブログ投稿のリストを表示するために使用されます。
: 1 つのブログ投稿の詳細なコンテンツを表示するために使用されます。
: 新しいブログ投稿を作成するために使用されます。
: ブログ投稿の編集に使用されます。
<h1>Posts</h1> <% @posts.each do |post| %> <h2><%= link_to post.title, post %></h2> <p><%= post.content %></p> <% end %> <p><%= link_to 'New Post', new_post_path %></p>
<h1><%= @post.title %></h1> <p><%= @post.content %></p> <%= link_to 'Edit', edit_post_path(@post) %> | <%= link_to 'Back', posts_path %>
<h1>New Post</h1> <%= render 'form' %> <%= link_to 'Back', posts_path %>
<h1>Editing Post</h1> <%= render 'form' %> <%= link_to 'Show', @post %> | <%= link_to 'Back', posts_path %>
<%= form_with(model: post, local: true) do |form| %> <% if post.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:</h2> <ul> <% post.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= form.label :title %> <%= form.text_field :title %> </div> <div class="field"> <%= form.label :content %> <%= form.text_area :content %> </div> <div class="actions"> <%= form.submit %> </div> <% end %>
http://localhost:3000/posts にアクセスします。
rails server
この記事では、MySQL を使用します。 Ruby on Railsによるシンプルなブログ管理システムを開発しました。データベースの設計、モデルの作成、コントローラーの開発、ビューのレンダリングについて説明しました。上記の手順により、シンプルなブログ管理システムを迅速に構築し、さらに拡張および最適化することができます。この記事が、MySQL と Ruby on Rails を使用した開発方法の理解に役立つことを願っています。
以上がMySQL と Ruby on Rails を使ったシンプルなブログ管理システムの開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。