とほほのRuby on Rails入門
目次
- config/routes.rb
- app/assets/stylesheets/common.css
- app/models/book.rb
- app/controllers/books_controller.rb
- app/views/books/index.html.erb
- app/views/books/show.html.erb
- app/views/books/new.html.erb
- app/views/books/edit.html.erb
ファイル
config/routes.rb
Rails.application.routes.draw do resources :users root 'home#index' get 'home/index' get '/help', to: 'home#help' get '/books', to: 'books#index' get '/books/new', to: 'books#new', as: :new_book post '/books', to: 'books#create' get '/books/:id', to: 'books#show', as: :book get 'books/:id/edit', to: 'books#edit', as: :edit_book patch '/books/:id', to: 'books#update' delete '/books/:id', to: 'books#destroy' end
app/assets/stylesheets/common.css
h1 { background-color: black; color: white; padding: .8rem; } a { color: #339; } input { height: 1.2rem; width: 25rem; margin-bottom: .5rem; } textarea { height: 3rem; width: 25rem; } button, input[type=submit] { height: 1.4rem; width: 10rem; margin-bottom: .5rem; }
app/models/book.rb
class Book < ApplicationRecord end
app/controllers/books_controller.rb
class BooksController < ApplicationController def index @books = Book.all end def show @book = Book.find(params[:id]) end def new @book = Book.new end def create @book = Book.new(book_params) if @book.save redirect_to @book else render :new, status: :unprocessable_entity end end def edit @book = Book.find(params[:id]) end def update @book = Book.find(params[:id]) if @book.update(book_params) redirect_to @book else render :new, status: :unprocessable_entity end end def destroy @book = Book.find(params[:id]) @book.destroy redirect_to books_path end private def book_params params.require(:book).permit(:title, :author) end end
app/views/books/index.html.erb
<h1>Books</h1> <a href="/">Return</a> | <%= link_to "Add", new_book_path %> <ul> <% @books.each do |book| %> <li><a href="/books/<%= book.id %>"><%= book.title %></a></li> <% end %> </ul>
app/views/books/show.html.erb
<h1>Books</h1> <a href="/books">Return</a> <div>Title: <%= @book.title %></div> <div>Author: <%= @book.author %></div> <%= button_to "Edit", edit_book_path, method: :get %> <%= button_to "Delete", @book, method: :delete %>
app/views/books/new.html.erb
<h1>Books</h1> <a href="/books">Return</a> <%= form_with model: @book do |form| %> <div> <div><%= form.label :title %></div> <div><%= form.text_field :title %></div> </div> <div> <div><%= form.label :author %></div> <div><%= form.text_field :author %></div> </div> <div> <%= form.submit %> </div> <% end %>
app/views/books/edit.html.erb
<h1>Books</h1> <a href="/books">Return</a> <%= form_with model: @book do |form| %> <div> <div><%= form.label :title %></div> <div><%= form.text_field :title %></div> </div> <div> <div><%= form.label :author %></div> <div><%= form.text_field :author %></div> </div> <div> <%= form.submit %> </div> <% end %>
Copyright (C) 2022 杜甫々
初版:2022年1月9日 最終更新:2022年1月9日
https://www.tohoho-web.com/ex/rails_sample.html