Home  >  Article  >  Database  >  How to develop a simple blog management system using MySQL and Ruby on Rails

How to develop a simple blog management system using MySQL and Ruby on Rails

王林
王林Original
2023-09-20 09:57:171106browse

如何使用MySQL和Ruby on Rails开发一个简单的博客管理系统

How to use MySQL and Ruby on Rails to develop a simple blog management system

Overview:
This article will introduce how to use MySQL and Ruby on Rails to develop a simple blog management system Blog management system. A blog management system is a common web application that allows users to create, edit and manage blog posts. We will use Ruby on Rails as the development framework and MySQL as the database management system. We will focus on database design, model creation, controller development, and view rendering. Specific code examples will be provided in the article.

Step 1: Environment setup
First, we need to install and configure Ruby on Rails and MySQL. I won’t go into details about the specific installation method here. You can refer to the official documentation for operation. After the installation is complete, we can verify whether the installation was successful through the command line.

Step 2: Create a Rails application
Create a new Rails application using the following command:

rails new blog
cd blog

Step 3: Configure the database
Open config/database. yml file, find the development section, and modify it to the following:

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'] %>

Replace your_username and your_password with your MySQL database username and password.

Step 4: Create the database
Run the following command to create the database:

rails db:create

Step 5: Create the model and database table for the blog post
Run the following command to create a database named Model and database table of Post:

rails generate model Post title:string content:text
rails db:migrate

The above command will create the post.rb file in the app/models directory, and in the database Create a table named posts, which contains two fields: title and content.

Step 6: Create Blog Controller
Run the following command to create a controller named Posts:

rails generate controller Posts

The above command will be executed in app Create a posts_controller.rb file in the /controllers directory.

Step 7: Write the method of blog controller
Open the app/controllers/posts_controller.rb file and add the following method to the class:

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

The above code Defines various actions of the blog controller, such as index, show, new, edit, create, update and destroy. These actions are used to display all blog posts, display a single blog post, create a new blog post, edit a blog post, save the creation or editing of a blog post, update a blog post, and delete a blog post.

Step 8: Write blog view
Open the app/views/posts directory and create the following file:

  • index.html.erb : Used to display a list of all blog posts.
  • show.html.erb: Used to display the detailed content of a single blog post.
  • new.html.erb: Used to create new blog posts.
  • edit.html.erb: Used to edit blog posts.

Here is a simple example:

index.html.erb

<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>

show.html.erb

<h1><%= @post.title %></h1>
<p><%= @post.content %></p>

<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>

new.html. erb

<h1>New Post</h1>

<%= render 'form' %>

<%= link_to 'Back', posts_path %>

edit.html.erb

<h1>Editing Post</h1>

<%= render 'form' %>

<%= link_to 'Show', @post %> |
<%= link_to 'Back', posts_path %>

_form.html.erb

<%= 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 %>

After completing the above operations, our simple blog management system can be run. Run the following command to start the server, and then visit http://localhost:3000/posts in the browser:

rails server

Summary:
In this article, we use MySQL and Ruby on Rails Developed a simple blog management system. We covered database design, model creation, controller development, and view rendering. Through the above steps, you can quickly build a simple blog management system and further expand and optimize it. I hope this article helps you understand how to develop with MySQL and Ruby on Rails.

The above is the detailed content of How to develop a simple blog management system using MySQL and Ruby on Rails. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn