mardi 12 septembre 2017

Error In Show And Edit Articles

I have an error when I press show articles and when I press update articles when editing the article. I will show you the image and my code if you think it is not sufficient enough, asking will do just fine.

Image of the show error :

Image of the edit error :

my code :

edit.html.erb:

    <h1>Edit the existing article</h1>
    <% if @article.errors.any? %>
      <h2>The following errors are informing you that if you don't do these then 
      your articles will not be edited</h2>
       <ul>
         <% @article.errors.full_messages.each do |msg| %>
            <li> <%= msg %> </li>
         <% end %>
       </ul>
     <% end %>
       <%= form_for @article do |f| %>
       <p>
         <%= f.label :title %>
         <%= f.text_field:title %>
       </p>
      <p>
         <%= f.label :description  %>
          <%= f.text_area :description %>
       </p>
        <p>
         <%= f.submit %>
      </p>
    <% end %>
    <%= link_to "Back To The List Of Articles", articles_path  %>

show.html.erb:

    <h1>Showing selected articles</h1>

     <p>
         Title: <%= @article.title %>


       </p>
      <p>
          Description: <%= @article.description %>


    </p>

     <%= link_to "Back To The List Of Articles", articles_path  %>
     <%= link_to "Edit This Article", edit_articles_path(@article)  %>

articles_controller :

    class ArticlesController < ApplicationController
     def index

      @articles = Article.all

     end 
       def new
         @article = Article.new 
       end
    def edit 
         @article = Article.find(params[:id])
    end 
     def update 
            @article = Article.find(params[:id])
            if @article.update 
                 flash[:notice] = "article was updated"
                 redirect_to(@article)
           else
                render 'edit'
            end 
     end 
       def create
         @article = Article.new(article_params)
          if @article.save
           flash[:notice] = "Article was submitted succsefully"
            redirect_to (@article)
          else
            render 'new'
           end 
         end
          def show
             @article = Article.find(params[:id])
         end 
         private 
         def article_params 
            params.require(:article).permit(:title, :description)
          end
    end 

index.html.erb

    <h1>ARTICLES</h1>

      <table>

       <tr>

          <th>Title</th>
          <th>Description</th>


      </tr>
       </table>

           <% @articles.each do |article|   %>

    <td><%= article.title %></td>
    <td><%= article.description %></td>
    <td><%= link_to 'Edit', edit_article_path(article) %></td>
    <td><%= link_to 'Show', article_path(article) %></td>
    <% end %>
    <%= link_to "Back To The List Of Articles", articles_path  %>

new.html.erb :

       <h1>Create an article</h1>
     <% if @article.errors.any? %>
    <h2>The following errors are informing you that if you don't do these then 
     your articles will not be created</h2>
      <ul>
         <% @article.errors.full_messages.each do |msg| %>
           <li> <%= msg %> </li>
        <% end %>
      </ul>
    <% end %>
     <%= form_for @article do |f| %>
       <p>
         <%= f.label :title %>
         <%= f.text_field:title %>
       </p>
        <p>
        <%= f.label :description  %>
        <%= f.text_area :description %>
      </p>
       <p>
        <%= f.submit %>
       </p>
    <% end %>
    <%= link_to "Back To The List Of Articles", articles_path  %>   

routes.rb :

    Rails.application.routes.draw do
  # The priority is based upon order of creation: first created -> highest 
priority.
  # See how all your routes lay out with "rake routes".

  # You can have the root of your site routed with "root"
  # root 'welcome#index'
resources :articles

root 'pages#home'
get 'about', to: 'pages#about'


  # Example of regular route:
  #   get 'products/:id' => 'catalog#view'

  # Example of named route that can be invoked with purchase_url(id: 
product.id)
  #   get 'products/:id/purchase' => 'catalog#purchase', as: :purchase

  # Example resource route (maps HTTP verbs to controller actions 
automatically):
  #   resources :products

  # Example resource route with options:
  #   resources :products do
  #     member do
  #       get 'short'
  #       post 'toggle'
  #     end
  #
  #     collection do 
  #       get 'sold'
  #     end
  #   end

  # Example resource route with sub-resources:
  #   resources :products do
  #     resources :comments, :sales
  #     resource :seller
  #   end

  # Example resource route with more complex sub-resources:
  #   resources :products do
  #     resources :comments
  #     resources :sales do
  #       get 'recent', on: :collection
  #     end
  #   end

  # Example resource route with concerns:
  #   concern :toggleable do
  #     post 'toggle'
  #   end
  #   resources :posts, concerns: :toggleable
  #   resources :photos, concerns: :toggleable

  # Example resource route within a namespace:
  #   namespace :admin do
  #     # Directs /admin/products/* to Admin::ProductsController
  #     # (app/controllers/admin/products_controller.rb)
  #     resources :products
  #   end
end

Aucun commentaire:

Enregistrer un commentaire