اذهب إلى المحتوى

السؤال

نشر

مرحباً إخواني / أخواتي، 

توجد لدي مشكلة في روبي أحاول حلّها من فضلكم من يقدم لي المساعدة أو طرف خيط لكي أحاول حلّها من فضلكم .

هذا كود ملف edit.html.erb 

 

//This is Code HTML.ERB in the file edit.html.erb

<h1>Edit Article</h1>
 
<%= form_with(model: @article, local: true) do |form| %>
 
  <% if @article.errors.any? %>
    <div id="error_explanation">
      <h2>
        <%= pluralize(@article.errors.count, "error") %> prohibited
        this article from being saved:
      </h2>
      <ul>
        <% @article.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>
 
  <p>
    <%= form.label :title %><br>
    <%= form.text_field :title %>
  </p>
 
  <p>
    <%= form.label :text %><br>
    <%= form.text_area :text %>
  </p>
 
  <p>
    <%= form.submit %>
  </p>
 
<% end %>
 
 <%= render 'form' %>

<%= link_to 'Back', articles_path %>
 

وهذا كود ملف articles_controller 

class ArticlesController < ApplicationController

    def index
        @articles = Article.all
    end

    def show
        @article = Article.find(params[:id])
    end

    def new
        @article = Article.new
    end


    def create
        #render plain: params[:article].inspect
        @article = Article.new(article_params)

        if @article.save
            redirect_to @article
        else
            render 'new'
        end
    end

    private

    def article_params
        params.require(:article).permit(:title, :text)
    end

    def edit
        @article = Article.find(params[:id])
        if @article.update(article_params)
            redirect_to @article
        else
            render 'edit'
        end
    end
end

أتطلع لمساعدتكم وشكراً جزيلاً لكم .

تحياتي .

img.PNG

Recommended Posts

  • 0
نشر

لابد ان ميثود مسئواله عن اتصال ب view مثلindex , edit أن تكون من نوع public ليست private . 

class ArticlesController < ApplicationController

    def index
        @articles = Article.all
    end

    def show
        @article = Article.find(params[:id])
    end

    def new
        @article = Article.new
    end


    def create
        #render plain: params[:article].inspect
        @article = Article.new(article_params)

        if @article.save
            redirect_to @article
        else
            render 'new'
        end
    end
  		# public تحويل الميثود الي 
      def edit
        @article = Article.find(params[:id])
        if @article.update(article_params)
            redirect_to @article
        else
            render 'edit'
        end
    end

    private

    def article_params
        params.require(:article).permit(:title, :text)
    end

end

 

  • 0
نشر

هناك عدة مشاكل في كود controller.

أولاً لم تابع edit هو private ؟ يجب أن يكون public ﻷنه action.

ثانياً يجب فصل كود التعديل على قاعدة البيانات عن كود إظهار فورم التعديل هكذا:

 

class ArticlesController < ApplicationController

    def index
        @articles = Article.all
    end

    def show
        @article = Article.find(params[:id])
    end

    def new
        @article = Article.new
    end


    def create
        #render plain: params[:article].inspect
        @article = Article.new(article_params)

        if @article.save
            redirect_to @article
        else
            render 'new'
        end
    end
    def update
      if @article.update(article_params)
        redirect_to @article
      else
        render 'edit'
      end
    end
  
    def edit
      @article = Article.find(params[:id])      
    end

    private

    def article_params
        params.require(:article).permit(:title, :text)
    end      
end

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...