2016-03-25 17 views
1

Çevrimiçi bir eğitici girişimde hata 'yanlış sayıda argüman (2 için 1)' alıyorum. Rails'e tamamen yeni geldim ve sadece kılavuzu takip etmeye çalışıyorum.Yanlış argüman sayısı (2 için 1) - Raylar - Belki Güçlü Parametreler

Benim denetleyicisi geçerli:

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

def new 

end 

def create 
    @article = Article.new(article_params) 

    @article.save 
    redirect_to @article 
end 

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

end 

Benim veritabanı kodudur: Verilen

class CreateArticles < ActiveRecord::Migration 
    def change 
    create_table :articles do |t| 
    t.string :title 
    t.text :text 

    t.timestamps null: false 
    end 
    end 
end 

parametreler şunlardır:

{"utf8"=>"✓", "authenticity_token"=>"JfpQBSnxU8O839o5YjbZV11TMAWTPgaok1/skSEoGlchdGCulmJuGxFdyj7lUK6WIfrLddCZAaWxOkxRaNqlTA==", 
"article"=>{"title"=>"hello world", 
"text"=>"hello olivia"}, 
"commit"=>"Save Article"} 

Herhangi bir yardım büyük takdir :)

+0

hey. –

+0

Hey evet, ArgumentError MakalelerController # create – OEThorne

+0

Yığın hata izini lütfen? – archana

cevap

0

Bu kodu denerseniz , konsoldaki herhangi bir hatayı yazdırır mı?

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

    def new 

    end 

    def create 
     @article = Article.new(article_params) 

     if @article.save 
      redirect_to article_path(@article) 
     else 
      logger.warn(@article.errors) 
      render "new" 
     end 
    end 

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

    end 
+0

Konsolda yeni hatalar yazdırmıyor. – OEThorne

+0

[pry] (https://github.com/rweng/pry-rails) veya byebug kullanmayı denediniz mi? – Louis

0

Sorun, büyük olasılıkla bir if bloğunda @ article.save aradığınız için olasıdır. @ Article.save öğesini çağırıyorsunuz ve ardından bir yönlendirmeyi çağırıyorsunuz. Kullanmaya çalıştığınızda, lütfen aldığınız hatayı gösterebilir misiniz?

if @article.save 
    redirect_to @article 
else 
    render :new 
end 
+0

Bunu denedim ancak yine de aynı dahili sunucu hatasını alıyorum. – OEThorne

+0

Gerçek hatayı gösterebilir misin? – hashrocket

+0

Ayrıca, yeni yönteminize @article = Article.new eklemeyi deneyin. – hashrocket

İlgili konular