Ruby on Rails DBに保存したデータを表示させたい
RailsでDBに保存したデータをViewに表示させたいと思っています。
内容は、Viewにeach文でデータをlink_toで一覧表示させてリンクをクリックすると、クリックしたデータの内容が表示されると言う物です。
そこで、以下のエラーが表示されました
コードは以下の通りです。(コメントアウトしている部分が多いですが、気にしないでください)
articles_controller.rb
class ArticlesController < ApplicationController # before_action :authenticate_user! before_action :find_article, only: [:show, :edit, :update, :destroy] def index @articles = Article.order(created_at: :desc) end def show end def new @article = Article.new end def edit end def create @article = Article.new(article_params) if @article.save redirect_to @article, notice: "作成できました" else render :new, alert: "作成できませんでした" end end def update if @article.update(article_params) redirect_to @article, notice: "更新できました" else render :edit, alert: "更新できませんでした" end end def destroy if @article.destroy redirect_to root_path, notice: "削除に成功しました" else redirect_to root_path, alert: "削除できませんでした" end end private def find_article @article = Article.find(params[:id]) end def article_params params.require(:article).permit(:title, :body) end end
routes.rb
Rails.application.routes.draw do # resources :tops # root "tops#index" # resources :articles resources :articles root "articles#index" get "/articles/index", to: "articles#index" get "/articles/new", to: "articles#new" get "/articles/show", to: "articles#show" # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
index.html.erb
<% @articles.each do |article| %> <div class="col-md-3 margin-top-Sper article-block padding-top-15"> <div class="card" style="width: 18rem;"> <%= image_tag "SampleImg.png", class: "img-fluid" %> <div class="card-body"> <h5 class="card-title"><%= article.title %></h5> <p class="card-text">募集開始日: <%= article.created_at.strftime("%Y年%-m月%-d日") %></p> <%= link_to article, class: "btn btn-primary" %> </div> </div> </div> <% end %>
どこが間違っていますのでしょうか?教えていただけると幸いです。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。